MySql事務(wù)隔離級(jí)別和鎖簡(jiǎn)述 事務(wù)的特征ACID,即原子性、一致性、隔離性、持久性。 原子性保證一個(gè)事務(wù)為一個(gè)最小的單元,內(nèi)部不可分割 一致性保證事務(wù)中的每個(gè)操作線程不可單獨(dú)提交,成功則一起提交,不成功則事務(wù)回滾 隔離性保證不同事務(wù)間看到的數(shù)據(jù)視圖相
MySql事務(wù)隔離級(jí)別和鎖簡(jiǎn)述事務(wù)的特征ACID,即原子性、一致性、隔離性、持久性。
原子性保證一個(gè)事務(wù)為一個(gè)最小的單元,內(nèi)部不可分割
一致性保證事務(wù)中的每個(gè)操作線程不可單獨(dú)提交,成功則一起提交,不成功則事務(wù)回滾
隔離性保證不同事務(wù)間看到的數(shù)據(jù)視圖相互獨(dú)立,相互隔離(隔離級(jí)別可設(shè)置)
持久性保證事務(wù)提交后數(shù)據(jù)會(huì)持久的保存下來。
?
數(shù)據(jù)庫隔離級(jí)別有四種——《高性能mysql》
另外還有一種情況:丟失更新(Lost Update),事務(wù)A和B都更新數(shù)據(jù)d1,A提交后B回滾了,這時(shí)A看到它的修改沒有生效,丟失了。讀未提交(read uncommitted)可以避免此類情況。
?
MySql的鎖簡(jiǎn)述
根據(jù)類型可分為共享鎖(SHARED LOCK)和排他鎖(EXCLUSIVE LOCK)或者叫讀鎖(READ LOCK)和寫鎖(WRITE LOCK)。
根據(jù)粒度劃分又分表鎖和行鎖。表鎖由數(shù)據(jù)庫服務(wù)器實(shí)現(xiàn),行鎖由存儲(chǔ)引擎實(shí)現(xiàn)。
?
共享鎖
共享鎖的鎖粒度是行或者元組(多個(gè)行)。一個(gè)事務(wù)獲取了共享鎖之后,可以對(duì)鎖定范圍內(nèi)的數(shù)據(jù)執(zhí)行讀操作。?
排它鎖
排它鎖的粒度與共享鎖相同,也是行或者元組。一個(gè)事務(wù)獲取了排它鎖之后,可以對(duì)鎖定范圍內(nèi)的數(shù)據(jù)執(zhí)行寫操作。
?
假設(shè)有兩個(gè)事務(wù)t1和t2
如果事務(wù)t1獲取了一個(gè)元組的共享鎖,事務(wù)t2還可以立即獲取這個(gè)元組的共享鎖,但不能立即獲取這個(gè)元組的排它鎖(必須等到t1釋放共享鎖之后)。
如果事務(wù)t1獲取了一個(gè)元組的排它鎖,事務(wù)t2不能立即獲取這個(gè)元組的排共享鎖,也不能立即獲取這個(gè)元組的排它鎖(必須等到t1釋放排它鎖之后)。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com