
1.概述
一般MySQL能够使用如下三种方式应用WHERE条件,从好到坏依次为:
- 在索引中使用WHERE条件来过滤不匹配的记录。这是在
存储引擎层
完成的。
- 使用索引覆盖扫描(在Extra列中出现了Using index)来返回记录,直接从索引中过滤不需要的记录并返回命中的结果。这是在
MySQL服务器层
完成的,但无须再回表查询记录
。
- 从数据表中返回数据,然后过滤不满足条件的记录(在Extra列中出现
Using Where
)。这在MySQL服务器层完成,MySQL需要先从数据表读出记录然后过滤。