数据库事务原理详解-数据库隔离级别
生活随笔
收集整理的這篇文章主要介紹了
数据库事务原理详解-数据库隔离级别
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
| Read-Uncommitted | 0 | 導致臟讀 |
| Read-Committed | 1 | 避免臟讀,允許不可重復讀和幻讀 |
| Repeatable-Read | 2 | 避免臟讀,不可重復讀,允許幻讀 |
| Serializable | 3 | 串行化讀,事務只能一個一個執(zhí)行,避免了臟讀、不可重復讀、幻讀。執(zhí)行效率慢,使用時慎重 |
臟讀:一事務對數(shù)據(jù)進行了增刪改,但未提交,另一事務可以讀取到未提交的數(shù)據(jù)。如果第一個事務這時候回滾了,那么第二個事務就讀到了臟數(shù)據(jù)。
不可重復讀:一個事務中發(fā)生了兩次讀操作,第一次讀操作和第二次操作之間,另外一個事務對數(shù)據(jù)進行了修改,這時候兩次讀取的數(shù)據(jù)是不一致的。
幻讀:第一個事務對一定范圍的數(shù)據(jù)進行批量修改,第二個事務在這個范圍增加一條數(shù)據(jù),這時候第一個事務就會丟失對新增數(shù)據(jù)的修改。
總結:隔離級別越高,越能保證數(shù)據(jù)的完整性和一致性,但是對并發(fā)性能的影響也越大。
大多數(shù)的數(shù)據(jù)庫默認隔離級別為Read Commited,比如SqlServer、Oracle少數(shù)數(shù)據(jù)庫默認隔離級別為:Repeatable Read 比如: MySQL InnoDB
?
總結
以上是生活随笔為你收集整理的数据库事务原理详解-数据库隔离级别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库事务原理详解-Spring 事务的
- 下一篇: 数据库事务原理详解-事务的嵌套