|
coredumped 发表于 2015-3-11 11:39 ![]()
b不是索引情况下,会对表上索引记录都加上行锁。rr隔离级别下会另外加上gap锁。
即使innodb表没有显示定义索引,系统也自动会生成hidden cluster index,譬如此例,
update t set * where b=2
虽然采用全表扫描,但最后会锁定表的全部cluster index entry,而非采用表锁。
不知这样理解是否正确,如果是,那么普通的select和DML是没有机会占用innodb表锁了?
(select in shared mode/for update除外) |
|