方法一、每次申请 id 之前,先判断表里面是否已经存在这个 id。所以,综合来看,比如取消自增值回滚的功能。加锁范围是 select所涉及到的范围和间隙。在 sessionB执行完 "create table t2 like t"后,sessionA和 sessionB同时操作 t2。而如果设置为2,那么如果 binlog不是 row,就会导致主从数据不一致。方案二:将 binlog格式设为 row,innodb_autoinc_lock_mode设为2。一般我们为了保证 MySQL的高可用,都将 binlog设为 row,所以一般选择第二种方案。
暂无评论