最简单的跨库连表的方法(附Windows重启mysql服务命令)

   日期:2022-08-03     文章发布:文章发布    网络转载:生活号    
核心提示:背景 现在一般使用的数据库都是mysql,微服务架构中, 分库分表是标配, 不同的数据源可能部署在不同的服务器, 联合查询就需要跨库连表查询, 常见做法: 1表冗余, 这样需要维护表的数据, 同步数据.相当于多存一份数据 2查单表, 然后组装, 这样需要的开发量大, 并且分页查询很不好处理 如果你用的是MySQL数据库...
移动站源标题:http://mip.818114.com/news/item-260585.html

背景

现在一般使用的数据库都是mysql,微服务架构中, 分库分表是标配, 不同的数据源可能部署在不同的服务器, 联合查询就需要跨库连表查询, 常见做法:

1表冗余, 这样需要维护表的数据, 同步数据.相当于多存一份数据

2查单表, 然后组装, 这样需要的开发量大, 并且分页查询很不好处理

如果你用的是MySQL数据库, 那么有一种更快捷省时省力的方式, 就是:

给远程表创建一个快捷方式.同于方法1的区别是, 这里只是引用, 而不需要复制一份数据.

开启mysql 表的快捷方式:

1 开启你的FEDERATED引擎

查询你的使用的mysql数据库的FEDERATED引擎有没有开启。

SHOWENGINES;

如果没有开启, 则修改一下mysql数据库的配置文件

windows修改 my.ini文件 Linux修改my.cnf文件

在配置文件末尾加上 federated

2 重启msyql 服务器

windows重启mysql服务命令

netstop mysql netstart mysql

linux重启mysql服务命令

servicemysqld restart

3 快捷表的创建

远程源表

本地快捷表

CREATETABLE`barang`( `id_barang`INT(255) NOTNULL, `id_kategori`INT(255) NULLDEFAULTNULL, `nama_barang`VARCHAr(255) NULLDEFAULTNULLCOLLATE’latin1_swedish_ci’, `harga`INT(255) NULLDEFAULTNULL, `stok`INT(255) NULLDEFAULTNULL, PRIMARY KEY(`id_barang`) USINGBTREE )ENGINE=FEDERATED CONNECTION=’mysql://username:[email protected]:3306/tets/test;

说明: 这里和普通建表语句的区别在于: ENGINE 的写法

查询

查询时,就可以像本地查询一样. 可以看见本地的数据将远程的数据也引用过来了

跨服务器的跨库查询特点:

1.该跨库查询方式不支持事务,所有涉及到事务的操作,不要用这种方式。

2.不能修改表的结构, 只是查询使用。

3.MySQL使用这种跨库查询方式,远程数据库目前仅支持MySQL,其他数据库不支持。

4.表结构必须和目标数据库表完全一致。

写在最后

掌握了这种方法后, 以后可以查询远程表像在本地查询一样. 跨库查询再也不会头疼了. 希望对大家有所帮助,如果你有更好的方式,欢迎大家评论, 交流.

免责声明:本网部分文章和信息来源于互联网,本网转载出于传递更多信息和学习之目的,并不意味着赞同其观点或证实其内容的真实性,如有侵权请通知我们删除!(留言删除
 
 
更多>同类行业

同类新闻
最新资讯
最新发布
最受欢迎
网站首页  |  黄页  |  联系方式  |  信息  |  版权隐私  |  网站地图  |  API推送  |  网站留言  |  RSS订阅  |  违规举报  |  陇ICP备22000095号