在行复制中,如果从库的字段比主库的字段多,那么不会报错,这个可以理解,日志是按照位置去进行操作的,只要对应的位置匹配就能正常,但是从库的字段也可以比主库的少,这个有点出乎意外。测试了下还真是可以的:
mysql> create table t1(a int,b int,comments text);
Query OK, 0 rows affected (0.01 sec)
从库上执行
mysql> alter table t1 drop comments;
Query OK, 0 rows affected (0.48 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> insert into t1 values(1,2,'aa');
Query OK, 1 row affected (0.01 sec)
mysql> select * from t1;
+------+------+----------+
| a | b | comments |
+------+------+----------+
| 1 | 2 | aa |
+------+------+----------+
1 row in set (0.00 sec)
在添加字段的时候,如果表很大,导致复制延时,可以先在主库上添加字段,禁用记录log,然后在从库上添加字段。这样避免从库延时