【mysql】官方的SQL事務隔離級別文件
SQL標準定義了4類隔離級別,包括了一些具體規則,用來限定事務內外的哪些改變是可見的,哪些是不可見的。低階別的隔離級一般支援更高的併發處理,並擁有更低的系統開銷。
Read Uncommitted(讀取未提交內容)
在該隔離級別,所有事務都可以看到其他未提交事務的執行結果。本隔離級別很少用於實際應用,因為它的效能也不比其他級別好多少。讀取未提交的資料,也被稱之為髒讀(Dirty Read)。
Read Committed(讀取提交內容)
這是大多數資料庫系統的預設隔離級別(但不是MySQL預設的)。它滿足了隔離的簡單定義:一個事務只能看見已經提交事務所做的改變。這種隔離級別 也支援所謂的不可重複讀(Nonrepeatable Read),因為同一事務的其他例項在該例項處理其間可能會有新的commit,所以同一select可能返回不同結果。
Repeatable Read(可重讀)
這是MySQL的預設事務隔離級別,它確保同一事務的多個例項在併發讀取資料時,會看到同樣的資料行。不過理論上,這會導致另一個棘手的問題:幻讀 (Phantom Read)。簡單的說,幻讀指當使用者讀取某一範圍的資料行時,另一個事務又在該範圍內插入了新行,當使用者再讀取該範圍的資料行時,會發現有新的“幻影” 行。InnoDB和Falcon儲存引擎透過多版本併發控制(MVCC,Multiversion Concurrency Control)機制解決了該問題。
Serializable(可序列化)
這是最高的隔離級別,它透過強制事務排序,使之不可能相互衝突,從而解決幻讀問題。簡言之,它是在每個讀的資料行上加上共享鎖。在這個級別,可能導致大量的超時現象和鎖競爭。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-719406/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 事務隔離級別MySql
- MySQL事務隔離級別MySql
- [Mysql]事務/隔離級別MySql
- MySQL事務的隔離級別MySql
- MySQL的事務隔離級別MySql
- SQL Server事務的隔離級別SQLServer
- 理解mysql的事務隔離級別MySql
- 理解MySQL事務隔離級別MySql
- mysql修改事務隔離級別MySql
- 【MySQL】MySQL的四種事務隔離級別MySql
- MySQL 的四種事務隔離級別MySql
- MySQL 事務的隔離級別初窺MySql
- MySQL的四種事務隔離級別MySql
- MySQL事務隔離級別和MVCCMySqlMVC
- mysql如何修改事務隔離級別MySql
- mysql事務隔離級別和鎖MySql
- 啥是 MySQL 事務隔離級別?MySql
- Mysql 四種事務隔離級別MySql
- Mysql鎖與事務隔離級別MySql
- MySQL事務隔離級別詳解MySql
- SQL Server 事務隔離級別詳解SQLServer
- 徹底搞懂 MySQL 事務的隔離級別MySql
- MySQL的事務隔離級別是什麼?MySql
- MySQL的事務處理及隔離級別MySql
- MySQL事務隔離級別的實現原理MySql
- MySQL 事務隔離級別實現原理MySql
- PostgreSQL事務隔離級別SQL
- 事務、特性、隔離級別
- SQL鎖機制和事務隔離級別SQL
- MySQL 事務隔離級別解析和實戰MySql
- 四個案例看懂 MySQL 事務隔離級別MySql
- Mysql事務隔離級別與鎖機制MySql
- 事務系統的隔離級別
- 怎麼理解SQL的四個事務隔離級別?SQL
- Oracle-事務隔離級別Oracle
- JDBC 事務(一) 隔離級別JDBC
- MySQL 事務的四大特性以及隔離級別MySql
- MySQL事務的隔離級別與併發問題MySql