什么是mysql鎖表?
為了給高并發情況下的mysql進行更好的優化,有必要了解一下mysql查詢更新時的鎖表機制。
MySQL有三種鎖的級別:頁級、表級、行級。
MyISAM和MEMORY存儲引擎采用的是表級鎖(table-level locking);BDB存儲引擎采用的是頁面鎖(page-level
locking),但也支持表級鎖;InnoDB存儲引擎既支持行級鎖(row-level locking),也支持表級鎖,但默認情況下是采用行級鎖。
MySQL這3種鎖的特性可大致歸納如下:
表級鎖:開銷小,加鎖快;不會出現死鎖;鎖定粒度大,發生鎖沖突的概率最高,并發度最低。
行級鎖:開銷大,加鎖慢;會出現死鎖;鎖定粒度最小,發生鎖沖突的概率最低,并發度也最高。
頁面鎖:開銷和加鎖時間界于表鎖和行鎖之間;會出現死鎖;鎖定粒度界于表鎖和行鎖之間,并發度一般。
鎖表怎么解決?MySQL鎖表怎么解鎖?
1、查進程,主要是查找被鎖表的那個進程的ID
SHOW PROCESSLIST;
2、kill掉鎖表的進程ID
KILL ? 10866;//后面的數字即時進程的ID
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END