在行复制中,如果从库的字段比主库的字段多,那么不会报错,这个可以理解,日志是按照位置去进行操作的,只要对应的位置匹配就能正常,但是从库的字段也可以比主库的少,这个有点出乎意外。测试了下还真是可以的:

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,然后在从库上添加字段。这样避免从库延时