理解mysql_鎖的概念
對於鎖需要重點掌握以下:
1. 鎖分類
● 表鎖
● 行鎖
● 對象鎖(meta-table鎖),在table cache層實現
● 頁鎖
● 排他鎖(互斥鎖、X鎖)
● 共享鎖(S鎖)
2.鎖的使用注意事項
● innodb引擎是行級鎖,適用於高併發場景的後臺系統
● myisam引擎採用的是表級鎖,適用於前端web系統
● 執行delete\update時默認會加互斥鎖
● innodb, 如果delete \update在where條件後的字段沒有加索引,會造成鎖表,嚴重併發性能
● 修改字段、刪除主鍵、刪除主鍵字段時會造成meta-table鎖
設置鎖等待超時時間: innodb_lock_wait_timeout=500 (單位爲s)
鎖常用的命令:
● 查看錶鎖爭用情況
show status like 'table%'
value值越高,鎖爭用情況越嚴重。
● 查看鎖表的狀態
show processlist;
對應的status值能看出來是否有鎖表。
1. 鎖分類
● 表鎖
● 行鎖
● 對象鎖(meta-table鎖),在table cache層實現
● 頁鎖
● 排他鎖(互斥鎖、X鎖)
● 共享鎖(S鎖)
2.鎖的使用注意事項
● innodb引擎是行級鎖,適用於高併發場景的後臺系統
● myisam引擎採用的是表級鎖,適用於前端web系統
● 執行delete\update時默認會加互斥鎖
● innodb, 如果delete \update在where條件後的字段沒有加索引,會造成鎖表,嚴重併發性能
● 修改字段、刪除主鍵、刪除主鍵字段時會造成meta-table鎖
設置鎖等待超時時間: innodb_lock_wait_timeout=500 (單位爲s)
鎖常用的命令:
● 查看錶鎖爭用情況
show status like 'table%'
value值越高,鎖爭用情況越嚴重。
● 查看鎖表的狀態
show processlist;
對應的status值能看出來是否有鎖表。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.