mysql鎖機制

手動增加表鎖

lock table 表名字 read(write),表名字2 read(write),其他;

查看錶上加過的鎖

show open tables;


解鎖

unlock tables

MyISAM在執行查詢語句前,會自動給涉及的所有表加上讀鎖,在執行增刪改前會給涉及的所有表加上寫鎖。

show STATUS like 'table%'


查看事務隔離級別

SHOW VARIABLES LIKE ‘tx_isolation’

自動提交

set autocommit=0或1;


字段b是varchar類型,現在索引失效了,因爲查詢時沒有用引號,導致行鎖變表鎖!

間隙鎖的危害:


a in(1,6)這個區間都被鎖了,a=2在這個區間內,session2的插入阻塞了!


查看鎖的爭奪情況

SHOW STATUS LIKE 'innodb_row_lock%'

行鎖的優化建議:

1.儘可能讓所有的數據檢索都是用索引,避免無索引導致行鎖升級爲表鎖。

2.儘量縮小查詢範圍,避免間隙鎖的範圍。

3.儘量控制事務大小,縮減事務時間,減少鎖定資源量

4.儘可能低級別事務隔離




發佈了30 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章