mysql满查询有助于让我们发现系统中瓶颈所在。
开启方法
默认情况满查询应该关闭,如果需要分析则需要手动开启。
mysql> show variables like '%slow_query_log%'; +---------------------+--------------------------------------+ | Variable_name | Value | +---------------------+--------------------------------------+ | slow_query_log | OFF | | slow_query_log_file | /var/lib/mysql/01f03cd2e279-slow.log | +---------------------+--------------------------------------+ 2 rows in set (0.01 sec)
开启慢查询语句如下
mysql> set global slow_query_log=1; Query OK, 0 rows affected (0.00 sec)
使用set global slow_query_log=1开启了慢查询日志只对当前数据库生效,MySQL重启后则会失效。如果需要永久开启则需要修改配置,不过大部分情况也用不着,这里就不介绍了
开启了之后还需要设置一个时间限制,超过多少时间我们才记录呢?这个配置值是long_query_time
设置慢查询超时时间
mysql> show variables like 'long_query_time%'; +-----------------+-----------+ | Variable_name | Value | +-----------------+-----------+ | long_query_time | 10.000000 | +-----------------+-----------+ 1 row in set (0.01 sec)
可以看到默认情况是10s,通常会修改这个值。改成0.5s试试
mysql> set global long_query_time=0.5; Query OK, 0 rows affected (0.00 sec)
请注意,设置之后需要重新开启会话才能看到效果。再次查看还是原来的值。
设置慢查询日志存放的位置
mysql> set global slow_query_log_file="日志存放的位置";
日志存放的位置mysql必须有可写的权限,否则会出现
ERROR 1231 (42000): Variable 'slow_query_log_file' can't be set to the value of...
怎么查看
这个参数用于指定慢查询日志的存放路径,缺省情况是host_name-slow.log文件
mysql> show variables like 'slow_query_log_file'; +---------------------+--------------------------------------+ | Variable_name | Value | +---------------------+--------------------------------------+ | slow_query_log_file | /var/lib/mysql/01f03cd2e279-slow.log | +---------------------+--------------------------------------+ 1 row in set (0.00 sec)
这个文件记录了慢查询,可以打开该文件查看慢查询日志。
如何验证
select sleep(3)
之后查看slow_query_log_file里面有没有慢查询日志。
赞赏微信赞赏
支付宝赞赏