标签:count image 技术分享 重复 设置 alt primary 日志记录 去重
查看是否开启慢查询日志
查看变量设置情况
我们要记录未使用索引的查询就要把变量设置为ON 用以下命令设置
再确认慢查询时间的变量情况
把慢查询日志设置为开启状态
下面演示如下:
记录的位置如下图所示
查看执行的sql语句是否记录在了日志文件中
下图是慢查询日志文件记录的sql语句
慢查询日志的存储格式
查看下工具可使用的参数
用工具查看慢查询日志记录的 前三条 用more查看
查看结果如下
查看pt-query-digest工具参数情况
演示分析上述日志文件
分析
下面用具体例子分析慢查询以及优化
上面看到sql语句执行要扫描15422行,这严重占用IO,下面我们创建一个索引来提高性能
再来看下执行计划
在看下Count()如何优化的例子
下面是正确的查询方式
演示执行效果
通常我们优化成join的方式
当表之前出现1对多的关系的时候有可能会出现重复,所以要去重
以上查询会出现对临时表的查询操作,我们把它优化成如下图情况 (执行explain来查看执行计划)
看下上面sql语句的执行计划
上面sql执行计划结果中采用表扫描的方式扫描了1030行,我们进行如下优化看下
看下执行计划
上图使用了主键key:PRIMARY和索引type:index查询,
接下来我们进一步优化
看下执行计划
上面执行计划中我们可以看到只扫描了5行,这样就大大提高了SQL执行效率
用工具查重复和...索引,输入命令如下图红框
查看结果
未完待续......
标签:count image 技术分享 重复 设置 alt primary 日志记录 去重
原文地址:https://www.cnblogs.com/zmdComeOn/p/10316998.html