MySQL ACID知識總結

2021-10-05 08:42:37 字數 795 閱讀 7808

a – atomicity 原子性: 一次資料庫的事務,要麼全部執行,要麼都執行,不能只發生一次操作。 資料庫事務的內在要求

c – consistency 一致性: 資料保持一致性狀態,資料的數目可以發生改變,但是本身的資料結構不變,資料特性不變。a有800,b有200,a轉給b 200,在這個過程中,ab的總錢數保持不變

i – isolation 隔離性:基於併發處理的事務操作之間必須相互隔離,乙個事務的操作不能影響另乙個事務。這裡可能需要通過加鎖,保證事務之間不會相互影響

d – duration 永續性:所有對於資料的修改都是永久的。

讀未提交(read uncommitted):事務中的修改,即使沒有提交也可以讀取。產生髒讀

讀已提交(read committed): 乙個事務只有在已提交之後才可以再讀取。會導致不可重複讀(內涵:不能夠讀乙個資料兩次,不然可能會產生不一樣的結果,但是一次讀的事務操作應該依賴於它第一次讀的資料),其中不可重複讀主要無法解決的是update操作。

可重複讀:保證在乙個事務內,讀同一條資料兩次不會發生變化,主要針對update操作優化。但是會導致幻讀,幻讀指的是,在select多行資料時,如果此時insert一條新的資料,那麼可能會讀到這個新insert的那一行。也就是,這一行在讀開始的時候不存在(幻 – 虛幻),但讀的過程中突然出現。

序列化:事務在讀取資料時,必須加表級共享鎖;事務在修改資料時,必須加表級排它鎖,保證寫的原子性

這幾個資料級別主要解決的問題分別是:

必須掌握 MySQL ACID 特性

在關係型資料庫管理系統中,乙個邏輯工作單元要成為事務,必須滿足這 4 個特性,即所謂的 acid 原子性 atomicity 一致性 consistency 隔離性 isolation 和永續性 durability 原子性 事務是乙個原子操作單元,其對資料的修改,要麼全都執行,要麼全都不執行。修改...

mysql acid設計 mysql事務

事務是資料庫管理系統執行過程中的乙個邏輯單元,由有限的操作序列構成。事務是提交和回滾的原子單元 acid 一組資料庫設計原則。事務有4個特性,即acid。個人理解是事務的設計模型。針對,資料被破壞,軟體崩潰,硬體故障,導致結果被篡改,發明的一致性檢查和崩潰恢復機制。atomic 原子性 乙個事務中的...

MySQL ACID與四個隔離級別

在資料讀寫過程中,可能發生 read uncommitted 可能髒讀 幻讀 不可重複讀 事務覆蓋造成更新丟失。排它鎖,只有乙個寫 read committed 寫事務不允許其他事務訪問資料。避免髒讀。repeatable read 讀取事務禁止寫事務,寫事務禁止任何其他事務 避免髒讀和不可重複讀s...