表读锁:
就是当使用语法给一个表上读锁时,当前客户端无法对该表的数据进行修改操作,但是可以读取。其他客户端也可以对该表数据进行读取,但是无法修改。
表写锁:
就是当使用语法给一个表上写锁时,当前客户端可以对此表进行读取和写入操作,但是其他客户端不能对该表进行读取和写入操作。
元数据锁:
就是当一个表中有事物的时候,这个表的结构不允许被其他的客户端修改。
意向锁:
为了解决表中行锁和表锁的冲突问题,当每次给数据行上锁的时候,就会给表加一个意向锁,读意向锁和表读锁可以兼容,不和表写锁兼容, 但是写意向锁和表读锁和表写锁都不兼容;
1.当客户端1给一行数据加读锁时,客户端2再给该表加个读锁,可以成功,但是加写锁,就会阻塞.
2.当客户端1给一行数据加写锁时,客户端2再给该表加个读锁,阻塞,加写锁,也阻塞;
行锁:
行锁锁的时一行数据,粒子级别最小的锁。锁的是索引中的数据记录。当根据条件字段查询没有结果时,锁的是间隙。当某个条件字段没有索引时,锁的是整个表。
间隙锁:
锁的是索引中相连的数据记录的间隙,间隙锁的唯一目的就是防止其他事物插入间隙,造成幻读。间隙锁可以共存,一个事物中采用的间隙锁不会阻止另一个事物采用相同的间隙锁。
临键锁:
锁住记录和记录之间的间隙,这种锁称为临键锁。比如一个事务给范围查询加锁,锁住的就是这些记录和记录之间的间隙。