建设工程教育网好还是环球网站好,建设网站需要申请什么,wordpress tags地址,在网站上怎么做推广MySQL默认为RR级别 首先默认RR是因为mysql为了保证在主从同步过程中数据的安全的问题#xff08;涉及到binlog三种格式#xff09;。 就是说两个并发事务数AB#xff0c;A先开启事物最后提交也是最后#xff0c;事务B开启和提交都在A内部#xff0c;由于隔离级别不同…MySQL默认为RR级别 首先默认RR是因为mysql为了保证在主从同步过程中数据的安全的问题涉及到binlog三种格式。 就是说两个并发事务数ABA先开启事物最后提交也是最后事务B开启和提交都在A内部由于隔离级别不同RR和RC会导致数据执行的顺序不同数据结果就不同。主从同步过程binlog如果为statement格式statement格式的bin log记录就是SQL语句原句就有出现问题。以至于后来官方规定了这个格式下不允许设置为RC级别。而RR得到解决是又加了GAP锁和临键锁使得必须得大事务A提交或者回滚了才能执行里面的小事务B。
RR和RC隔离级别的主要区别 隔离级别改为RC级别主要是可以提升并发度、降低发生死锁的概率。 RC的锁更少只有锁记录而且支持“半一致读”感兴趣可详细查看书籍。
一致性读
RR在select读只生成一次快照读RR都重新生成保证读的数据是最新的
锁机制
RR支持三种锁为了解决幻读的问题支持Record Lock的同时还支持Gap Lock和Next-Key Lock。 RC只支持一种只会对索引增加Record Lock
binlog格式支持程度 MySQL的binlog主要支持三种格式分别是statement、 row、mixed RC 只支持row格式的binlog。不支持statement格式。 如果指定了mixed作为 binlog 格式会自动使用row 格式的日志记录 RR 三种都支持。