連接1:
BEGIN;
SELECT *
FROM world.city
WHERE ID = 130
FOR SHARE;
連接2:
SELECT engine, thread_id, object_schema,
object_name, lock_type, lock_mode,
lock_status, lock_data
FROM performance_schema.data_locks;
-------- ----------- --------------- ------------- ----------- --------------- ------------- -----------
| engine | thread_id | object_schema | object_name | lock_type | lock_mode | lock_status | lock_data |
-------- ----------- --------------- ------------- ----------- --------------- ------------- -----------
| INNODB | 130 | world | city | TABLE | IS | GRANTED | NULL |
| INNODB | 130 | world | city | RECORD | S,REC_NOT_GAP | GRANTED | 130 |
-------- ----------- --------------- ------------- ----------- --------------- ------------- -----------
我得到一個表鎖和一個記錄鎖。我知道 InnoDB只使用了記錄級塊。
uj5u.com熱心網友回復:
Innodb 在表上設定意圖鎖(IS):
意向鎖是表級鎖,它指示事務稍后對表中的行需要哪種型別的鎖(共享或獨占)。
uj5u.com熱心網友回復:
性能模式從緩沖池而不是磁盤中提取資料。如果它在池中找不到頁面,它會將 lock_data 列報告為 NULL。
見https://dev.mysql.com/blog-archive/innodb-data-locking-part-2-5-locks-deeper-dive/
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/516985.html
