mysql的事務特性和隔離級別

2021-10-03 04:08:17 字數 835 閱讀 3728

acid特性:

a:atomicity原子性;整個事務中的所有操作要麼全部成功執行,要麼全部失敗後回滾

c:consistency一致性;資料庫總是從乙個一致性狀態轉換為另乙個一致性狀態

i:isolation隔離性;乙個事務所做出的操作在提交之前,是不能為其它事務所見;隔離有多種隔

離級別,實現併發

d:durability永續性;一旦事務提交,其所做的修改會永久儲存於資料庫中

指定事務隔離級別:

read uncommitted

可讀取到未提交資料,產生髒讀

read committed

可讀取到提交資料,但未提交資料不可讀,產生不可重複讀,即可讀取到多個提交資料,導致每次

讀取資料不一致

repeatable read

可重複讀,多次讀取資料都一致,產生幻讀,即讀取過程中,即使有其它提交的事務修改資料,仍

只能讀取到未修改前的舊資料。此為mysql預設設定

serializable

可序列化,未提交的讀事務阻塞修改事務(加讀鎖,但不阻塞讀事務),或者未提交的修改事務阻塞讀事務(加寫鎖,其它事務的讀,寫都不可以執行)。會導致併發效能差

mvcc和事務的隔離級別:

mvcc(多版本併發控制機制)只在repeatable read和read committed兩個隔離級別下工作。其

他兩個隔離級別都和mvcc不相容,因為readuncommitted總是讀取最新的資料行,而不是符合當前

事務版本的資料行。而serializable則會對所有讀取的行都加鎖

Mysql 事務特性和隔離級別

事務的特性乙個事務 transaction 中的所有操作,要麼全部完成,要麼全部不完成,不會結束在中間某個環節。事務在執行過程中發生錯誤,會被回滾 rollback 到事務開始前的狀態,就像這個事務從來沒有執行過一樣。在事務開始之前和事務結束以後,資料庫的完整性沒有被破壞。這表示寫入的資料必須完全符...

MySQL事務 特性 隔離級別

簡單來說事務就是要麼全都成功,要麼全部失敗的一組語句 事務的四種隔離級別 讀未提交 read committed 讀已提交 read uncommitted 可重複讀 repeatable read 可序列化 serializable 1.讀未提交 兩個事務同時操作乙個表,其中乙個事務修改了表中的資...

聊聊MySQL事務的特性和隔離級別

網上對於此類的文章已經十分飽和了,那還寫的原因很簡單 作為自己的理解筆記。前言此篇文章作為自己學習mysql的一些個人理解,使用的引擎是innodb。首先先講講事務的概念,在 高效能mysql 第三版中其對事務的描述是這樣的 事務就是一組原子性的sql查詢,或者說乙個獨立的工作單元。如果資料庫引擎能...