- 查询优化
是否向数据库请求了不需要的数据:
①.查询不需要的记录,一般都使用limit关键字限制
②.多表关联时返回全部列
③.总是取出全部列(select * ...)
④.重复查询相同的数据(每次都提交相同的查询,得到的结果也是完全相同)
MySQL是否在扫描额外的记录,可以使用三种方式对扫描的行数进行区别:
①.在索引中使用where条件来过滤不匹配的记录(在存储引擎层完成)
②.使用索引覆盖扫描(Extra中出现Using Index)来返回记录,直接从辅助索引中过滤不需要的记录并且返回需要的记录,(MySQL服务层完成,不需要再回表查询记录)
③.从数据表中返回数据,然后过滤不满足条件的记录(Extra中出现Using index),MySQL服务层完成,需要先从数据表读取记录然后过滤.