MVCC是指,InnoDB使用基于时间点的快照来获取查询结果,读取时在访问的表上不设置任何锁,因此,在事务T1读取的同一时刻,事务T2可以自由的修改事务T1所读取的数据。...这两种锁定读在搜索时所遇到的(注意:不是最终结果集中, 但MySQL会对其做一定的优化)每一条索引记录(Index Record)上设置排它锁或共享锁。...事务在获取行锁之前, 首先要获取到意向锁
事务在获取行上的S锁之前, 事务必须首先获取 表上的 IS锁或表上的更强的锁
事务在获取行上的X锁之前, 事务必须首先获取 表上的 IX锁
4.锁类型的兼容性如下...意向锁就是协调行锁和表锁之间的关系的, 或者也可以说, 意向锁是协调表上面的读写锁和行上面的读写锁(也就是不同粒度的锁)之间的关系的
意向锁类似厕所门上的标识, 红的就是有人, 绿的就是没人....对应上面的sql, 查询从满足条件的第一条记录开始, 即17开始加锁; 判断当前节点满足查询条件, 继续扫描; 然后又遇到了42, 继续加锁, 判断当前节点已经不满足条件了, 所以扫描到此为止.