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