本章主要讲解查询不同实例跨库查询,可以参考如下:
场景:不同实例连表查询。
解决方案:在机器A上的数据库A中建一个表B。
采用的方式:基于MySQL的federated引擎的建表
前提条件:你的mysql得支持federated引擎。
show engines;
我是有的,因为我已经配置好了,嘿嘿!!!
如果你有FEDERATED引擎的话,你还得看一下Support是什么值哦,如果是No的话,你就需要取配置一下my.cnf文件咯,在[mysqld] 最后一行加入federated 。 然后重启mysql 就OK了哦,然后你执行show engines 就可以看到如上的效果了哦。
如果你没有FEDERATED引擎的话,就只能需要你们公司运维去解决了哈,因为会存在很多问题的哦。不过一般都会存在FEDERATED引擎。
解释一下:FEDERATED引擎创建的表 只会有一个表结构文件。数据文件和索引文件还是在远程服务器上,相当于一个快捷方式。不过不用担心,还是可以正常的查询哦。
需要注意的几点:
- 本地的表结构必须与远程的完全一样。
- 远程数据库目前仅限MySQL
- 不支持事务
- 不支持表结构修改
- 不要存在json数据类型哦
建表案例:下面是一个日志表
CREATE TABLE `mz_sample_log`