mysql鎖和死鎖

2021-08-22 16:56:16 字數 781 閱讀 5633

- 馬永佔,myz,mayongzhan

以下是一些總結.引用了一些網路上的經驗

myisam和memory儲存引擎採用的是表級鎖table-level locking

bdb儲存引擎採用的是頁面鎖page-level locking,但也支援表級鎖

innodb儲存引擎既支援行級鎖row-level locking,也支援表級鎖,但預設情況下是採用行級鎖

表級鎖 開銷小,加鎖快;不會出現死鎖;鎖定粒度大,發生鎖衝突的概率最高,併發度最低

行級鎖 開銷大,加鎖慢;會出現死鎖;鎖定粒度最小,發生鎖衝突的概率最低,併發度也最高

頁面鎖 開銷和加鎖時間界於表鎖和行鎖之間;會出現死鎖;鎖定粒度界於表鎖和行鎖之間,併發度一般

僅從鎖的角度來說:

表級鎖更適合於以查詢為主,只有少量按索引條件更新資料的應用,如web應用

死鎖所謂死鎖: 是指兩個或兩個以上的程序在執行過程中,

因爭奪資源而造成的一種互相等待的現象,若無外力作用,它們都將無法推進下去.

此時稱系統處於死鎖狀態或系統產生了死鎖,這些永遠在互相等竺的程序稱為死鎖程序.

表級鎖不會產生死鎖.所以解決死鎖主要還是真對於最常用的innodb.

在遇到問題時

先執行showprocesslist找到死鎖執行緒號.然後kill processno

當然主要解決還是需要去看一下具體的操作.可能產生死鎖

show innodb status檢查引擎狀態 ,可以看到哪些語句產生死鎖

然後就是解決了.

怎麼解決還是要看具體什麼問題.

mysql鎖和死鎖

以下是一些總結.引用了一些網路上的經驗 myisam和memory儲存引擎採用的是表級鎖table level locking bdb儲存引擎採用的是頁面鎖page level locking,但也支援表級鎖 innodb儲存引擎既支援行級鎖row level locking,也支援表級鎖,但預設情...

mysql鎖和死鎖

myisam和memory儲存引擎採用的是表級鎖table level locking bdb儲存引擎採用的是頁面鎖page level locking,但也支援表級鎖 innodb儲存引擎既支援行級鎖row level locking,也支援表級鎖,但預設情況下是採用行級鎖 表級鎖 開銷小,加鎖快...

mysql鎖和死鎖

以下是一些總結.引用了一些網路上的經驗 myisam和memory儲存引擎採用的是表級鎖table level locking bdb儲存引擎採用的是頁面鎖page level locking,但也支援表級鎖 innodb儲存引擎既支援行級鎖row level locking,也支援表級鎖,但預設情...