优化数据库访问
确认检索的数据超过需求的数据
几种典型不好的操作
- 查询不需要的数据
- 多表关联时获取所有列
- 获取所有的列
- 重复查询相同的数据
确认MySQL服务器扫描的数据超过需求的数据
三个指标
- 执行时间
- 扫描的行数
- 检查的行数
where的应用:(由好到坏)
- 在索引中使用WHERE条件过滤不匹配的行数(发生在存储引擎层)
- 使用覆盖索引来避免行访问和过滤掉不匹配的行(发生在服务器层)
- 从数据表中返回数据,然后过滤不满足的数据(发生在服务器层)
在大量数据中返回少量的行。可以考虑
- 使用覆盖索引
- 改变数据库结构,添加单独的汇总表
- 重写复杂的查询