Mysql:既然可重复读RR事务隔离解决了幻读问题,那么serializable隔离相对于RR隔离有啥好处?
2 回答
阿晨1998
TA贡献2037条经验 获得超6个赞
Repeatableread能解决幻读?可重复读。在同一个事务内的查询都是事务开始时刻一致的,InnoDB默认级别。在SQL标准中,该隔离级别消除了不可重复读,但是还存在幻象读。
MySQL数据库中默认隔离级别为RR,但是实际情况是使用RC 和 RR隔离级别的都不少。好像淘宝、网易都是使用的 RC 隔离级别。那么在MySQL中 RC 和 RR有什么区别呢?我们该如何选择呢?为什么MySQL将RR作为默认的隔离级别呢?
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
对于一般业务来说没啥好处,反而对性能有影响,对于特殊业务来说就比较方便RR解决幻读是通过手动加锁来实现的,如果加锁不正确,还是会出现幻读,在不进行全表锁的情况下,很难避免其他事务不会对当前事务有影响。所以,serializable的好处就是完全隔绝了其他事务对当前事务的影响,在开发人员对数据库理解不够的时候,使用serializable比手动加锁要安全
添加回答
举报
0/150
提交
取消