Federated引擎允许您访问远程PolarDB MySQL版集群或社区MySQL数据库中的数据,而无需使用复制或集群技术。本地Federated表中未存储任何数据,查询本地Federated表会通过远程方式提取远程表数据。当您使用PolarDB MySQL版或社区MySQL标准存储引擎创建表时,该表由表定义和相关数据组成。创建Federated表时,表定义是相同的,但是数据的物理存储是在远程服务器上处理的。

Federated表由两个元素组成:

  • 具有数据库表的远程PolarDB MySQL版集群或社区MySQL服务器,该数据库表由表定义(存储在MySQL数据字典中)和关联表组成。远程表的表类型可以是远程服务器支持的任何类型,包括MyISAM、InnoDB和CSV等。

  • 具有数据库表的本地集群,其中表定义与远程服务器上相应表的定义相匹配。表定义存储在MySQL数据字典中,本地集群上没有数据文件,表定义包含一个指向远程表的连接字符串。

Federated表结构如下:

image..png

当在本地PolarDB MySQL版集群的Federated表上执行SQL时,通常会从本地PolarDB MySQL版集群插入数据文件,更新或删除数据文件的操作被发送到远程PolarDB MySQL版集群或社区MySQL服务器执行,在远程集群或服务器上更新数据文件或从远程集群或服务器返回匹配的行。