在「读未提交」隔离级别下,可能发生脏读、不可重复读和幻读现象;
2 Read Committed(提交读)
在RC级别下,一个事务开始执行后,只能看到其他已经提交的事务造成的修改, 不能看到未提交事务对数据的修改,解决了脏读的问题。可能发生不可重复读和幻读现象。很多DBMS默认隔离级别都是RC。(MySQL除外
alpha 暗示这是一个以展示新特性为目的的版本,存在比较多的不稳定因素,还会向代码中添加新新特性beta 以后的beta版、发布版或产品发布中,所有API、外部可视结构和SQL命令列均不再更改,不再向代码中添加影响代码稳定性的新特性。
rc 是指 Release Candidate. Release candidates被认为是稳定的, 通过了mysql所有的内部测试, 修正了所有已知的致命bug. 但是rc版本还没有经历足够长的时间来确认所有bug都已经发现,但是对rc版本只会做些小的bug修正
GA如果没有后缀,则暗示这是一个大多数情况下可用版本或者是产品版本。. GA releases是稳定的, 并通过了早期版本的测试,并显示其可用性, 解决了所有严重的bug, 并且适合在生产环境中使用. 只有少数较为严重的bug修改才会添加到该版本中。
原因:(1)在rc隔离级别下,事务没有gap lock锁,因此可以在小于等于5的范围内插入一条新记录。
(2)binlog为statement记录的是master上产生的sql语句,按提交顺序记录的,因此binlog中记录的是先插入数据,后删除数据。(虽然master上是先删除数据后插入数据),逻辑上产生了不一致。
如何解决:
只需要解决上述问题中的一个就能保证数据的同步了。
(1)可以使用rr隔离级别
(2)使用row格式的binlog
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)