共享锁和排他锁

排他锁(X)修改一行数据的时候,禁止其他线程同时禁止修改

抢到了锁的进行修改,没抢到锁的进行等待

共享锁(S)读取一行数据的时候,禁止其他线程进行修改

不是互斥的,上锁后其他线程也可以继续上锁,并行查询数据

上锁的线程也不能修改数据的值

表级锁和行级锁

表级锁

表级锁意向锁(I)

意向锁是表锁

表级意向排他锁(IX)

事务有意向对表中的某些共享锁

LOCK IN SHARE MODE

MySQL——InnoDB锁_锁表

表级意向共享锁(IS)

事务有意向对表中的某些排他锁

FOR UPDATE

MySQL——InnoDB锁_锁表_02

表级锁自增锁

行级锁

记录锁(locks rec but not gap)
间隙锁(gap)

锁定某一行,及上一个索引之间的数据

临建锁

临建锁=记录锁+间隙锁

锁定某一行,及下一个索引之间的数据

如何给表上共享锁

LOCK TABLES <表名> READ

MySQL——InnoDB锁_锁表_03