## 一、简介 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。 ## 二、参数说明 - slow\_query\_log 慢查询开启状态 - slow\_query\_log\_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录) - long\_query\_time 查询超过多少秒才记录 ## 三、查看慢查询状态 ```mysql mysql> show variables like 'slow_query%'; -- 查询是否开启慢查询和保存位置 +---------------------+--------------------------------+ | Variable_name | Value | +---------------------+--------------------------------+ | slow_query_log | OFF | | slow_query_log_file | /var/lib/mysql/MT2400-slow.log | +---------------------+--------------------------------+ 2 rows in set (0.01 sec) mysql> show variables like 'long_query_time'; -- 超过此时间的写慢日志 +-----------------+-----------+ | Variable_name | Value | +-----------------+-----------+ | long_query_time | 10.000000 | +-----------------+-----------+ 1 row in set (0.01 sec) ``` ## 四、开启慢查询 ### 1.无需重启mysql,直接开启 下次重启mysql可能不会生效 ```mysql mysql> set global slow_query_log='ON'; -- 开启慢查询 Query OK, 0 rows affected (0.01 sec) mysql> set global long_query_time=1; -- 查询超过1秒就记录 Query OK, 0 rows affected (0.00 sec) ```