MySQL中有以下幾類鎖:
共享鎖/排他鎖
意向鎖,該鎖是表級(jí)別的
記錄鎖
Gap 鎖
Next-Key鎖
自增鎖
地理索引的Predicate鎖。
mysql 中有幾張系統(tǒng)表是關(guān)于鎖信息的:
INFORMATION_SCHEMA.INNODB_TRX:記錄了所有在INNODB引擎上執(zhí)行的事務(wù)信息。
INFORMATION_SCHEMA.INNODB_LOCKS:記錄了每個(gè)事務(wù)上的鎖的信息。
INFORMATION_SCHEMA.INNODB_LOCK_WAITS:記錄了哪些事務(wù)在等待鎖,以及等待鎖的信息。
查看鎖是否存在,以及相關(guān)信息:
SELECT
r.trx_id waiting_trx_id,
r.trx_mysql_thread_id waiting_thread,
r.trx_query waiting_query,
b.trx_id blocking_trx_id,
b.trx_mysql_thread_id blocking_thread,
b.trx_query blocking_query
FROM information_schema.innodb_lock_waits w
INNER JOIN information_schema.innodb_trx b
ON b.trx_id = w.blocking_trx_id
INNER JOIN information_schema.innodb_trx r
ON r.trx_id = w.requesting_trx_id;
需要注意的是,INNODB_TRX、INNODB_LOCKS和INNODB_LOCK_WAITS這幾張表的記錄來源是innodb中一塊中間內(nèi)存,在0.1秒內(nèi)分別查閱這三張表的結(jié)果是正常的。
但是如果超過0.1秒,分開查閱這三張表的話,這三張表的數(shù)據(jù)會(huì)出現(xiàn)不一致的情況。
此外,這幾張表的數(shù)據(jù)來源和PROCESSLIST這張表的數(shù)據(jù)來源是不一致的。
網(wǎng)站題目:mysql鎖以及鎖信息查看
網(wǎng)址分享:
http://weahome.cn/article/igogoh.html