1. 在索引中使用where条件过滤不匹配的记录,这是在存储引擎层完成的;
  2. 使用索引覆盖扫描(explain语句中的Extra列中出现Using index)来返回记录。直接从索引中过滤掉不需要的记录并返回命中得结果,这是mysql服务器层完成,但再无需回表查询记录;
  3. 从数据表中返回数据,然后过滤掉不需要条件的记录(explain语句中的Extra列中出现Using where)。这是在mysql服务器层完成,mysql需要从数据表读取记录然后过滤;