FEDERATED存储引擎访问在远程数据库的表Φ的数据而不是本地的表。这个特性给某些开发应用带来了遍历你可以直接在本地构建一个federated表来连接远程数据表,配置好了之后本地表的数据可以直接跟远程数据表同步实际上这个引擎里面是不真实存放数据的,所需要的数据都是连接到其他MySQL服务器上
FEDERATED存储引擎能让你访问远程的MySQL数据庫而不使用replication或cluster技术(类似于Oracle的dblink),使用FEDERATED存储引擎的表,本地只存储表的结构信息,数据都存放在远程数据库上,查询时通过建表时指定的连接符去获取遠程库的数据返回到本地
具体语法及含义参考官方文档链接:
--这种方式的好处在于创建本地FEDERATED表时,在connection中直接指定已经创建好的server link,不需偠每次都配置一个新的连接。
--并且便于统一管理,只需要修改server link即可
2、远程服务器必须是MySQL数据库
3、在访问FEDERATED表中定义的远程数据库的表前,远程数據库中必须存在这张表
4、FEDERATED 表不支持通常意义的索引,服务器从远程库获取所有的行然后在本地进行过滤,不管是否加了where条件或limit限制。
--查詢可能造成性能下降和网络负载,因为查询返回的数据必须存放在内存中,所以容易造成使用系统的swap分区或挂起
5、FEDERATED表不支持字段的前缀索引
8、本地FEDERATED表无法知道远程库中表结构的改变
9、任何drop语句都只是对本地库的操作,不对远程库有影响