首頁  >  文章  >  資料庫  >  mysql表鎖和行鎖的差別是什麼

mysql表鎖和行鎖的差別是什麼

青灯夜游
青灯夜游原創
2019-05-07 17:11:466533瀏覽

Mysql有很多這種鎖機制,像是行鎖,表鎖等,讀鎖,寫鎖等,都是在做操作之前先上鎖;這些鎖統稱為悲觀鎖(Pessimistic Lock)。以下這篇就來帶大家了解一下mysql中的鎖,介紹表鎖和行鎖的差別,希望對你們有幫助。

mysql表鎖和行鎖的差別是什麼

鎖定是電腦協調多個行程或執行緒並發存取某一資源的機制。在資料庫中,除傳統的 運算資源(如CPU、RAM、I/O等)的爭用以外,資料也是許多使用者共享的資源。如何確保資料並發存取的一致性、有效性是所有資料庫必須解決的一 個問題,鎖定衝突也是影響資料庫並發存取效能的重要因素。從這個角度來說,鎖對資料庫而言顯得尤其重要,也更加複雜。

mysql中表鎖和行鎖的區別

#行鎖

特點:鎖的粒度小,發生鎖衝突的機率低、處理並發的能力強;開銷大、加鎖慢、會出現死鎖

加鎖的方式:自動加鎖。對於UPDATE、DELETE和INSERT語句,InnoDB會自動為涉及資料集加排他鎖;對於普通SELECT語句,InnoDB不會加任何鎖定。

表鎖定

特點:開銷小、加鎖快、無死鎖;鎖定粒度大,發生鎖定衝突的機率高,高並發下效能低

加鎖的方式:自動加鎖。查詢操作(SELECT),會自動為涉及的所有表格加讀鎖,更新操作(UPDATE、DELETE、INSERT),會自動為涉及的表加上寫鎖。

以上是mysql表鎖和行鎖的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn