首先需要明确查询性能低下的基础原因:访问数据过多。
还有一种可能性:筛选大量数据,但是并不常见。
通常情况下性能低下的查询都可以通过减少访问数据量的方式进行优化。
分析慢查询
两种分析方法:
- 应用程序是否在检索大量超过需要的数据。
- 确认MySQL服务器是否在分析大量超过需要的数据行。
一、是否向数据库请求了不需要的数据
描述:一个查询请求了超过实际需要的数据,但是多余的部分并没有什么用处而被丢掉。
影响:这会给MySql服务器带来额外的负担,增加网络开销,消耗应用服务器的CPU和内存资源
典型案例:
-
查询不需要的记录:如分页查询中每次都全部查询,但是只显示一部分。
-
多表关联时返回全部列:
比如典型的”图书分类-图书“模式,该模式包含三个数据表:图书、图书分类、图书-图书分类
我们想查询A分类中所有的图书
一种错误的写法是:
SELECT * FROM 图书 INNER JOIN 图书-图