MySQL慢查询
//查看慢查询时间设定时间
mysql> show variables like “long_query_time”; 默认10s
+—————–+———–+
| Variable_name | Value |
+—————–+———–+
| long_query_time | 10.000000 |
+—————–+———–+
1 row in set (0.01 sec)
//查看查询时间超过long_query_time秒的查询的个数
mysql> show status like “%slow_queries%”;
+—————+——-+
| Variable_name | Value |
+—————+——-+
| Slow_queries | 0 |
+—————+——-+
1 row in set (0.00 sec)
//查看慢查询日志路径及是否启用
mysql> show variables like “%slow%”;
+—————————+———————————————+
| Variable_name | Value |
+—————————+———————————————+
| log_slow_admin_statements | OFF |
| log_slow_slave_statements | OFF |
| slow_launch_time | 2 |
| slow_query_log | OFF | #是否启用慢查询
| slow_query_log_file | /usr/local/mysql-5.6.31/data/bogon-slow.log | #慢查询日志位置,建议放在data下
+—————————+———————————————+
5 rows in set (0.00 sec)
修改配置文件
第一步:在my.ini中加上下面两句话
5.6.*前的版本
log-slow-queries = “/usr/local/mysql-5.6.31/data/bogon-slow.log” #设置慢查询日志存放位置
long_query_time = 2 #设置超过指定时间即为慢查询语句,单位是秒,建议2秒内
5.6.*后的版本
slow_query_log = 1 #是否启用慢查询 1:启用 0:禁用
long_query_time = 2 #设置超过指定时间即为慢查询语句,单位是秒,建议2秒内
slow_query_log_file = “/usr/local/mysql-5.6.31/data/bogon-slow.log” #设置慢查询日志存放位置
第二步:查看关于慢查询的状态
执行如下SQL语句来查看mysql慢查询的状态
show variables like ‘%slow%’; #执行结果会把是否开启慢查询、慢查询的秒数、慢查询日志等信息打印在屏幕上。
第三步:执行一次慢查询操作
其实想要执行一次有实际意义的慢查询比较困难,因为在自己测试的时候,就算查询有20万条数据的海量表,也只需要0.几秒。我们可以通过如下语句代替:
SELECT SLEEP(10);
第四步:查看慢查询的数量
通过如下sql语句,来查看一共执行过几次慢查询:
show global status like ‘%slow%’;
mysql日志的配置:
注意:这些日文件在mysql重启的时候才会生成
#记录所有sql语句
log=E:/mysqllog/mysql.log
#记录数据库启动关闭信息,以及运行过程中产生的错误信息
log-error=E:/mysqllog/myerror.log
记录除select语句之外的所有sql语句到日志中,可以用来恢复数据文件
log-bin=E:/mysqllog/bin