《插入InnoDB自增列,居然是表级别锁?》介绍了InnoDB所使用的七种锁中的一种,自增锁。

今天,将要介绍InnoDB另外三种:共享/排他锁,意向锁,插入意向锁。

一,共享/排它锁(Shared and Exclusive Locks)

《InnoDB并发为何这么高?》一文介绍了通用的共享/排它锁,在InnoDB里当然也实现了标准的行级锁(row-level locking),共享/排它锁:

(1)事务拿到某一行记录的共享S锁,才可以读取这一行;

(2)事务拿到某一行记录的排它X锁,才可以修改或者删除这一行;

其兼容互斥表如下:

          S          XS      兼容      互斥X      互斥      互斥

即:

(1)多个事务可以拿到一把S锁,读读可以并行;

(2)而只有一个事务可以拿到X锁,写写/读写

收藏 打印