首页 > 数据库技术 > 详细

数据库事务隔离级别

时间:2019-11-26 12:05:44      阅读:66      评论:0      收藏:0      [点我收藏+]

1.事务特性ACID

原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持续性(Durability)

2.事务隔离级别

读未提交(Read Uncommited)、读已提交(Read Committed)、可重复读(Repeatable Read)、序列化(Serializable)

3.可能出现问题表格

-------------------------

        脏读     不可重复读    幻读

RU    true         true          true

RC    false        true          true

RR    false        false         true

S      false        false         false

-------------------------

4.RU和S在实际应用中基本不用,RU会导致脏读,数据不可置信。S锁级别太高,性能差

5.Mysql默认隔离级别为RR,Oracle等其他默认级别为RC,Mysql推荐binlog格式为row

6.Mysql默认级别为RR的原因是,在Mysql早期,binlog只有statement格式,对于master/slave主从复制可能出现顺序错误的bug

后期Mysql推出了row级别日志解决了此问题,所以所有业务型数据库推荐隔离级别为RC

7.推荐隔离级别为RC的原因(RC优于RR的原因)

-RC比RR更不容易出现死锁

-在索引未达成的情况下,RR锁全表,RC锁行,RC效率更高

-update时,RC可以使用半一致性读增加效率,RR只能等待

-RC对比RR劣势在于不可重复读问题,而此问题在业务上完全可以接受,因为commited就已经是新数据了,可以被读取出来展示

 

数据库事务隔离级别

原文:https://www.cnblogs.com/scaling/p/11934365.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!