标签:upd 数据 share 执行 inno nbsp let 读取 table
1、mysql innoDB默认使用 行级锁、可重复读(Repeated Read)的隔离级别。
1)、只有在通过索引条件查询时,才使用行级锁,否则使用的是全表锁。意味着如果没有使用索引的查询使用的是全表锁。
这里的索引包含:主键索引、唯一索引、普通索引。即所有索引。
2)、使用相同的索引,即使查询不同的行,会造成死锁。
3)、执行sql前,mysql先判断执行计划,然后决定是否使用索引行锁。比如:一张表数据量很小,查询时采用的是全表锁,而并没有使用索引,即并未使用行锁。
2、加锁策略
1)、隐式加锁
2)、显式加锁
共享锁:对查询出来的行数据,加共享锁后,其他人也可以读取到,但是不能update/delete。
排他锁:获取到符合条件的某些行后,如果对这些行接着执行update操作时,需要使用排他锁。
因此,尽可能的使用索引查询。
标签:upd 数据 share 执行 inno nbsp let 读取 table
原文地址:https://www.cnblogs.com/yaoyuan2/p/10280841.html