一、共享锁和排他锁
(一)排他锁(X)修改一行数据的时候,禁止其他线程同时禁止修改
抢到了锁的进行修改,没抢到锁的进行等待
(二)共享锁(S)读取一行数据的时候,禁止其他线程进行修改
不是互斥的,上锁后其他线程也可以继续上锁,并行查询数据
上锁的线程也不能修改数据的值
二、表级锁和行级锁
(一)表级锁
1、表级锁意向锁(I)
意向锁是表锁
(1)表级意向排他锁(IX)
事务有意向对表中的某些行加共享锁
LOCK IN SHARE MODE
(2)表级意向共享锁(IS)
事务有意向对表中的某些行加排他锁
FOR UPDATE
2、表级锁自增锁
(二)行级锁
1、记录锁(locks rec but not gap)
2、间隙锁(gap)
锁定某一行,及上一个索引之间的数据
3、临建锁
临建锁=记录锁+间隙锁
锁定某一行,及下一个索引之间的数据
三、如何给表上共享锁
LOCK TABLES <表名> READ