SQl慢查询优化

最近做的项目,数据量都相对比较大,对sql性能的要求就比较高,整理一篇

优化慢查有三宝:
pt-query-digest
explain
show profiling
首先,使用pt-query-digest可以定位到定位影响最中的慢查是哪条。

SQl慢查询优化_第1张图片

然后通过explain具体分析慢查晓的问题所在。
SQl慢查询优化_第2张图片

重点查看type,rows和extra这三个字段。

其中type的顺序如下:

system>const>eq_ref>ref>fulltext>ref_or_null>index_merge>unique_subquery>index_subquery>range>index>ALL
最后,如果问题还是比较严重,可以通过show profiling来定位一下到底是那个环节出现的问题。
SQl慢查询优化_第3张图片

可以看到sending data最消耗时间,这时候就需要找到底为什么在sending上消耗了这么多的时间,是结果集太大,还是IO性能不够了,诸如此类。

以下就是一个复杂语句的优化结果,可以从rows那里明显的看出减少了很多查询的开销。

SQl慢查询优化_第4张图片

摘自:https://www.cnblogs.com/clphp/p/5360335.html

profiling的使用参考https://blog.csdn.net/caomiao2006/article/details/52140965

你可能感兴趣的:(数据库)