总结一下自己理解的MySql锁相关的理解
mysql版本为5.7,引擎为innodb,这个引擎在工作中最常用
1.共享锁
共享锁又叫读锁,共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改数据。
2.排他锁
排他锁与任何锁互斥,排他锁又叫写锁。
意思是当前事务加上锁之后,其他的事务不能继续在当前的数据上加锁。
innoDB引擎会默认在数据更新、插入、删除操作的时候加上排他锁。
3.间隙锁
间隙锁会出现在范围查询的时候,而不是等于查询的时候。范围查询时,innoDB会对这个范围的数据加锁,在这个范围内的有些数据索引是不存在的,innoDB会对这一部分不存在的索引数据加锁。
select * from lock_demo where id between 5 and 10
4.自增锁
自增锁是一种特殊的表级别锁。最简单的情况,如果一个事务正在往表中插入记录,所有其他事务的插入必须等待,以便第一个事务插入的行,是连续的主键值。
5.还有其他几种锁,本人没有深入的去涉及研究
分别是:记录锁、临键锁、意向锁。
还有一种叫插入意向锁。