:::warning
**Using where**
表示MySQL服务器将存储引擎返回行以后再应用where条件过滤。
:::
使用了索引,MySQL可能会锁住一些不需要的数据。如果不能使用索引查找和锁定行的话,问题可能会更糟糕,MySQL会做全表扫描并锁住所有的行,而不管是不是需要。
InnoDB在二级索引上使用共享(读)锁,在聚簇索引上使用排他(写)锁。这消除了使用覆盖索引的可能性,并且使得select for update
比lock in share mode
或非锁定查询要慢得多。