一、是否查询了不必要的数据
查询性能低下最基本的原因是访问的数据太多,大部分抵消的查询都可以通过减少访问数据量的方式进行优化。下面是针对常见四种问题的优化方案:
问题 | 优化方案 |
---|---|
查询不需要的记录 | 绝大多数查询都需要使用 limit 来限制返回的记录数 |
多表关联时返回全部列 | 在多表连接查询中更加不能使用 SELECT * |
总是取出全部列 | SELECT * 会返回不需要的列从而增加网络开销,而且失去了覆盖索引的可能性 |
重复查询相同数据 | 不断重复执行相同的查询,可以考虑使用缓存 |
二、是否存在扫描额外的记录
在确定查询只返回需要的数据后,再来看查询是否扫描了过多的数据。在 MySQL 中,衡量查询开销有三个重要的指标:响应时间、返回行数和扫描行数