MySQL 的鎖機制是基于兩個級別的鎖:表級鎖和行級鎖。
表級鎖適用于整張表的操作,通常在DDL(如ALTER TABLE)操作或全表查詢(如SELECT * FROM table WHERE)中使用。表級鎖分為兩種:讀鎖(共享鎖)和寫鎖(排它鎖)。
讀鎖:LOCK TABLE table_name READ; 寫鎖:LOCK TABLE table_name WRITE;
行級鎖適用于某一行記錄的操作,記錄在被修改時會對該行加上獨占鎖,其他事務無法修改該行。行級鎖分為兩種:共享鎖和獨占鎖。
SELECT * FROM table_name WHERE field_name = 'value' LOCK IN SHARE MODE; SELECT * FROM table_name WHERE field_name = 'value' FOR UPDATE;
因此,MySQL 使用了兩級封鎖協議。在并發環境下,行級鎖避免了讀寫沖突,提高了并發訪問性能;而表級鎖則避免了表結構的變化,確保了數據的完整性。
下一篇css 鼠標變成手抓