MySQL锁
一.概述
锁是计算机协调多个进程或线程并发访问某一资源的机制。
锁冲突:
二.分类
1.数据范围分类
表级锁:
行级锁:
页面锁:
2.操作分类
共享锁(s):共享锁允许事务读取一行的数据。
互斥锁(x):互斥锁允许事务拥有更新一行或删一行的锁。
特定行上有了共享锁,就不行佳互斥锁了。
ps:SQL不仅能实现CURD,还是实现锁的管理。也就是说,实现锁也是事务.
3.使用分类
意向锁:InnoDB支持多颗粒锁,允许行锁和表锁共存。
意向锁是表级别的锁,无论哪个类型的锁,事务需要在表中行的后面。
意向锁分为两种:
(1).意向共享锁(IS),SELECT ... LOCK IN SHARE MODE。
(2).意向互斥锁(IX),SELECT ... FOR UPDATE 。

记录锁:
记录锁是索引记录上的锁。
例如:SELECT c1 FROM t WHERE c1 = 10 FOR UPDATE; //避免其他事务添加、删除、修改t.c1值为10的记录.
记录锁总是锁住索引记录,即便表没有索引定义。
间隙锁:
临键锁:
插入意向锁:
自增锁:

浙公网安备 33010602011771号