limit优化
事务
锁和索引
MySQL 加锁处理分析
Innodb 中 RR 隔离级别能否防止幻读?
MySQL的InnoDB的幻读问题
Clustered and Secondary Indexes
SQL中的where条件,在数据库中提取与应用浅析
MySQL学习之——锁(行锁、表锁、页锁、乐观锁、悲观锁等)
InnoDB引擎在加锁的时候,只有通过索引进行检索的时候才会使用行级锁,否则会使用表级锁。
这里还可能存在另外一个问题,虽然我们对method_name 使用了唯一索引,并且显示使用for update来使用行级锁。但是,MySql会对查询进行优化,即便在条件中使用了索引字段,但是否使用索引来检索数据是由 MySQL 通过判断不同执行计划的代价来决定的,如果 MySQL 认为全表扫效率更高,比如对一些很小的表,它就不会使用索引,这种情况下 InnoDB 将使用表锁,而不是行锁。