MySQL常見的三種鎖以及特性

打卡(2020-05-07)

鎖問題的由來

鎖是計算機協調多個線程併發訪問某一資源的機制,在數據庫中
除了io,cpu的搶用以外,數據也是一種允許供許多個用戶共享的資源。如何保證併發的一致性,有效性是數據必須解決的一個問題,鎖衝突也是影響數據庫併發訪問性能的一個重要因素。

常見的三種鎖,鎖的特性如下

  • 表級鎖:開銷小,加鎖快;不會出現死鎖,鎖定粒度大,發生鎖衝突的概率最高,併發度最低。
  • 頁面鎖:開銷和加鎖的時間介於表鎖和行鎖之間;會出現死鎖,鎖定粒度介於表鎖和行鎖之間,併發度一般。
  • 行級鎖:開銷大,加鎖慢;會出現死鎖,鎖的粒度最小,發生鎖衝突的概率最低,併發度也最高。

查看錶級鎖爭用的情況

    // 可以檢查 table_locks_waited 和 table_locks_immediate 狀態分析系統上的表鎖定情況
    show status like 'table_%';
    // 說明:如果table_locks_waited這個值比較高,說明有嚴重的表鎖爭用情況。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章