码迷,mamicode.com
首页 > 其他好文 > 详细

什么是慢查询?如何通过慢查询日志优化?

时间:2018-07-18 00:01:17      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:long   建立   mys   统计信息   停止   打开   输出   admin   sorted   

日志就跟人们写的日记一样,记录着过往的事情。但是人的日记是主观的(记自己想记的内容),而数据库的日志是客观的,根据记录内容分为以下好几种日志:

a、错误日志:记录启动、运行或停止mysqld时出现的问题。

b、通用日志:记录建立的客户端连接和执行的语句。

c、更新日志:记录更改数据的语句。该日志在MySQL 5.1中已不再使用。

d、二进制日志:记录所有更改数据的语句。还用于复制。

e、慢查询日志:记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。

f、Innodb日志:innodb redo log

缺省情况下,所有日志创建于mysqld数据目录中。

可以通过刷新日志,来强制mysqld来关闭和重新打开日志文件(或者在某些情况下切换到一个新的日志)。

当你执行一个FLUSH LOGS语句或执行mysqladmin flush-logs或mysqladmin refresh时,则日志被老化。

对于存在MySQL复制的情形下,从复制服务器将维护更多日志文件,被称为接替日志。

这次我们介绍的就是慢查询日志。何谓慢查询日志?MySQL会记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为慢查询,都记在慢查询日志里,我们开启后可以查看究竟是哪些语句在慢查询

 

开启慢查询日志

查看慢查询配置,没有则在my.cnf中添加

mysql> show variables like ‘%slow%‘; 

+---------------------+---------------------------------------------------------------------+

| Variable_name       | Value                                                               |

+---------------------+---------------------------------------------------------------------+

| log_slow_queries    | OFF                                                                 |

| slow_launch_time    | 2                                                                   |

| slow_query_log      | OFF                                                                 |

| slow_query_log_file | C:\ProgramData\MySQL\MySQL Server 5.5\Data\SZVY2AWX5511361-slow.log |

+---------------------+---------------------------------------------------------------------+

4 rows in set

 

分析日志 – mysqldumpslow

分析日志,可用mysql提供的mysqldumpslow,使用很简单,参数可–help查看

 

推荐用分析日志工具 – mysqlsla

【说明】

queries total: 总查询次数 unique:去重后的sql数量

sorted by : 输出报表的内容排序

最重大的慢sql统计信息, 包括 平均执行时间, 等待锁时间, 结果行的总数, 扫描的行总数.

Count, sql的执行次数及占总的slow log数量的百分比.

Time, 执行时间, 包括总时间, 平均时间, 最小, 最大时间, 时间占到总慢sql时间的百分比.

95% of Time, 去除最快和最慢的sql, 覆盖率占95%的sql的执行时间.

Lock Time, 等待锁的时间.

95% of Lock , 95%的慢sql等待锁时间.

Rows sent, 结果行统计数量, 包括平均, 最小, 最大数量.

Rows examined, 扫描的行数量.

Database, 属于哪个数据库

Users, 哪个用户,IP, 占到所有用户执行的sql百分比

Query abstract, 抽象后的sql语句

Query sample, sql语句

什么是慢查询?如何通过慢查询日志优化?

标签:long   建立   mys   统计信息   停止   打开   输出   admin   sorted   

原文地址:https://www.cnblogs.com/xyhero/p/40858bdec581108896159c8f9a2d05f9.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!