mysql批量同步表数据到不同库
时间: 2023-07-16 20:15:31 浏览: 101
sqlA库某表到B库某表同步
你可以使用MySQL的Federated存储引擎来实现跨库的数据同步。Federated存储引擎可以让你在一个MySQL实例上访问另一个MySQL实例上的表,就好像这个表是本地的一样。下面是一个示例:
假设有两个MySQL数据库,一个是源数据库,另一个是目标数据库。现在需要将源数据库中的一个表的数据同步到目标数据库中的同名表。
1. 在目标数据库上创建一个Federated表,指向源数据库中的表:
```
CREATE TABLE federated_table (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
PRIMARY KEY (id)
)
ENGINE=FEDERATED
CONNECTION='mysql://username:password@source_host/source_database/source_table';
```
其中,`source_host`是源数据库的主机名,`source_database`是源数据库的名称,`source_table`是源表的名称,`username`和`password`是连接源数据库的用户名和密码。
2. 然后通过一个INSERT INTO SELECT语句将源表中的数据插入到Federated表中:
```
INSERT INTO federated_table (name)
SELECT name FROM source_table;
```
这样就可以将源表中的数据批量同步到目标数据库中的同名表了。
需要注意的是,Federated存储引擎有一些限制,比如不支持事务等。如果数据量较大或需要更高性能的同步方案,可以考虑使用其他方法,比如使用ETL工具、触发器或存储过程实现跨库数据同步。
阅读全文