表鎖 Myisam引擎(表級)session
讀鎖定時,不能寫, 寫鎖定A表時,其餘session不能讀和寫A表spa
讀鎖session-1 只能查A表,不能查其餘B表blog
session-2 寫阻塞,能查詢全部表索引
寫鎖session-1 能改A表, 不能查其餘表it
session-2 不能查A表,更加不能寫操做.io
lock tables 表名 read|write; innodb
unlock 表名table
行鎖 InnerDB引擎(行級)class
無索引引起的表鎖date
間隙鎖的危害,使用範圍檢索數據,InnoDB會給符合條件的記錄索引枷鎖,對於鍵值範圍內但並不存的記錄,叫間隙鎖
危害:Query時,範圍內的全部索引值被鎖, 間隙值行記錄會被阻塞
分析行鎖
show status like 'innodb_row_lock%';
**_current_waits:當前正在等待鎖定的數量 和
**_time 等待的總時長
**_time_avg 等待平均時長
**_time_max 等待最長的一次所花時間
**_waits: 系統啓動後到如今的總共等待次數
如何鎖定一行?
begin
select * from tables where *** for update;
commit;
頁鎖