mysql表鎖和行鎖的區別是什么

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

mysql表鎖和行鎖的區別是什么

鎖是計算機協調多個進程或線程并發訪問某一資源的機制。在數據庫中,除傳統的 計算資源(如CPU、RAM、I/O等)的爭用以外,數據也是一種供許多用戶共享的資源。如何保證數據并發訪問的一致性、有效性是所有數據庫必須解決的一 個問題,鎖沖突也是影響數據庫并發訪問性能的一個重要因素。從這個角度來說,鎖對數據庫而言顯得尤其重要,也更加復雜。

mysql中表鎖和行鎖的區別

行鎖

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

加鎖的方式:自動加鎖。對于UPDATE、delete和INSERT語句,InnoDB會自動給涉及數據集加排他鎖;對于普通select語句,InnoDB不會加任何鎖。

表鎖

特點:開銷小、加鎖快、無死鎖;鎖粒度大,發生鎖沖突的概率高,高并發下性能低

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

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享