


Linux培训
达内IT学院
400-996-5531
问题:MySQL负载高时,如何找到是由哪些SQL引起的?
答:
方法:慢查询日志分析(MySQLdumpslow)
慢查询日志例子,可看到每个慢查询SQL的耗时:
日志显示该查询用了1.958秒,返回254786行记录,一共遍历了254786行记录。及具体的时间戳和SQL语句。
使用MySQLdumpslow进行慢查询日志分析
MySQLdumpslow -s t -t 5 slow_log_20140819.txt
输出查询耗时最多的Top5条SQL语句
-s:排序方法,t表示按时间 (此外,c为按次数,r为按返回记录数等)
-t:去Top多少条,-t 5表示取前5条
执行完分析结果如下:
以第1条为例,表示这类SQL(N可以取很多值,这里MySQLdumpslow会归并起来)在8月19号的慢查询日志内出现了1076100次,总耗时99065秒,总返回440058825行记录,有28个客户端IP用到。
通过慢查询日志分析,就可以找到最耗时的SQL,然后进行具体的SQL分析了
慢查询相关的配置参数
log_slow_queries:是否打开慢查询日志,得先确保=ON后面才有得分析
long_query_time:查询时间大于多少秒的SQL被当做是慢查询,一般设为1S
log_queries_not_using_indexes:是否将没有使用索引的记录写入慢查询日志
slow_query_log_file:慢查询日志存放路径
填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有