人妻丰满熟妇AV无码片,岛国AV无码免费无禁网站,丰满岳乱妇一区二区三区,男插女高潮一区二区

mysql innodb 的事務(wù)鎖

技術(shù)分享 2019-10-01 00:00:00
引題:為何引入事務(wù)?
1>.數(shù)據(jù)完整性
2>.數(shù)據(jù)安全性
3>.充分利用系統(tǒng)資源,提高系統(tǒng)并發(fā)處理的能力
1. 事務(wù)的特征
事務(wù)具有四個特性:原子性(Atomiocity)、一致性(Consistency)、隔離性(Isolation)和持久性(Durability),這四個特性簡稱ACID特性。
1.1原子性
事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包括的所有操作要么都做,要么都不做。
1.2 一致性
事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性的狀態(tài)變到另外一個一致性狀態(tài)。
1.3 隔離性
一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾。即一個事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對其他
事務(wù)是隔離的,并發(fā)執(zhí)行的各個事務(wù)之間互相不干擾。
1.4 持久性
一個事務(wù)一旦成功提交,對數(shù)據(jù)庫中數(shù)據(jù)的修改就是持久性的。接下來其他的其他
操作或故障不應(yīng)該對其執(zhí)行結(jié)果有任何影響。
2. MySQL的InnoDB引擎中事物與鎖
2.1 SELECT …… LOCK IN SHARE MODE
會話事務(wù)中查找的數(shù)據(jù),加上一個共享鎖。若會話事務(wù)中查找的數(shù)據(jù)已經(jīng)被其他會話事務(wù)加上獨占鎖的話,共享鎖會等待其結(jié)束再加,若等待時間過長就會顯示事務(wù)需要的鎖等待超時。
2.2 SELECT ….. FOR UPDATE
會話事務(wù)中查找的數(shù)據(jù),加上一個讀更新瑣,其他會話事務(wù)將無法再加其他鎖,必須等待其結(jié)束。
2.3 INSERT、UPDATE、DELETE
會話事務(wù)會對DML語句操作的數(shù)據(jù)加上一個獨占鎖,其他會話的事務(wù)都將會等待其釋放獨占鎖。
2.4 gap and next key lock(間隙鎖)
InnoDB引擎會自動給會話事務(wù)中的共享鎖、更新瑣以及獨占鎖,需要加到一個區(qū)間值域的時候,再加上個間隙鎖(或稱范圍鎖),對不存在的數(shù)據(jù)也鎖住,防止出現(xiàn)幻寫。
備注:
以上2.1,2.2,2.3,2.4中描述的情況,跟MySQL所設(shè)置的事務(wù)隔離級別也有關(guān)系。
3.四種事務(wù)隔離模式
3.1 READ UNCOMMITED
SELECT的時候允許臟讀,即SELECT會讀取其他事務(wù)修改而還沒有提交的數(shù)據(jù)。
3.2 READ COMMITED
SELECT的時候無法重復讀,即同一個事務(wù)中兩次執(zhí)行同樣的查詢語句,若在第一次與第二次查詢之間時間段,其他事務(wù)又剛好修改了其查詢的數(shù)據(jù)且提交了,則兩次讀到的數(shù)據(jù)不一致。
3.3 REPEATABLE READ
SELECT的時候可以重復讀,即同一個事務(wù)中兩次執(zhí)行同樣的查詢語句,得到的數(shù)據(jù)始終都是一致的。
3.4 SERIALIZABLE
與可重復讀的唯一區(qū)別是,默認把普通的SELECT語句改成SELECT …. LOCK IN SHARE MODE。即為查詢語句涉及到的數(shù)據(jù)加上共享瑣,阻塞其他事務(wù)修改真實數(shù)據(jù)。
咨詢小瓶科技
咨詢我們
頂部