在使用MySQL中,经常会在表中建立一个自增的ID字段,利用自增ID能够快速建立索引,也是MySQL官方比较推荐的一种方式,但是,这种方式在大量数据且配置主从时,可能会出现由于自增ID导致同步失败的情况
首先需要了解一点
Mysql主从同步主要通过bin log来同步,而MySQl中bin log最大值为1G,
这种情况触发条件如下:
1、数据库配置主从同步
2、表存在自增ID
3、表数据量大,
如果在主上执行insert into…select…类SQL,该SQL事物超过1G时,MySQL会将该SQL以row模式同步从上,即同步为insert into values(.......),而此时数据量超过1G,即超过了MySQL bin log允许的最大值,所以主从同步失败,只能删除该自增字段才能恢复主从
如果在主上执行insert into…select…类SQL,该SQL事物超过1G时,MySQL会将该SQL以row模式同步从上,即同步为insert into values(.......),而此时数据量超过1G,即超过了MySQL bin log允许的最大值,所以主从同步失败,只能删除该自增字段才能恢复主从
因此在数据量很大且存在上述计算SQL的表上,谨慎使用自增字段