加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql上如何启动慢查日志

发布时间:2023-08-17 14:38:47 所属栏目:MySql教程 来源:
导读:本文主要给大家介绍mysql如何启动慢查日志,其所涉及的东西,从理论知识来获悉,有很多书籍、文献可供大家参考,从现实意义角度出发,亿速云累计多年的实践经验可分享给大家。

sql与索引优化

数据库表结构优
本文主要给大家介绍mysql如何启动慢查日志,其所涉及的东西,从理论知识来获悉,有很多书籍、文献可供大家参考,从现实意义角度出发,亿速云累计多年的实践经验可分享给大家。
 
sql与索引优化
 
数据库表结构优化
 
系统配置
 
硬件

mysql> show variables like 'slow_query_log';
 
+----------------+-------+
 
| Variable_name  | Value |
 
+----------------+-------+
 
| slow_query_log | OFF   |
 
+----------------+-------+
 
1 row in set (0.00 sec)
 
慢日志查询没有开启,可以开启一下。
 
找到my.cnf,添加如下内容sudo vim /usr/local/mysql/my.cnf
 
添加慢日志查询
 
log_output=file
 
slow_query_log=on
 
slow_query_log_file = /tmp/mysql-slow.log
 
log_queries_not_using_indexes=on
 
long_query_time = 1
 
重启mysql。
 
确定修改是否成功启动慢日志查询
 
mysql> show variables like 'slow_query_log';
 
+----------------+-------+
 
| Variable_name  | Value |
 
+----------------+-------+
 
| slow_query_log | ON    |
 
+----------------+-------+
 
1 row in set (0.00 sec)
 
mysql> show variables like '%quer%';
 
+----------------------------------------+------------------------------------+
 
| Variable_name                          | Value                              |
 
+----------------------------------------+------------------------------------+
 
| binlog_rows_query_log_events           | OFF                                |
 
| ft_query_expansion_limit               | 20                                 |
 
| have_query_cache                       | YES                                |
 
| log_queries_not_using_indexes          | ON                                 |
 
| log_throttle_queries_not_using_indexes | 0                                  |
 
| long_query_time                        | 1.000000                           |
 
| query_alloc_block_size                 | 8192                               |
 
| query_cache_limit                      | 1048576                            |
 
| query_cache_min_res_unit               | 4096                               |
 
| query_cache_size                       | 8388608                            |
 
| query_cache_type                       | OFF                                |
 
| query_cache_wlock_invalidate           | OFF                                |
 
| query_prealloc_size                    | 8192                               |
 
| slow_query_log                         | ON                                 |
 
| slow_query_log_file                    | /tmp/mysql-slow.log |
 
+----------------------------------------+------------------------------------+
 
执行如下SQL语句来查看mysql慢查询的状态
 
show variables like '%slow%';
 
执行一次慢查询操作  其实想要执行一次有实际意义的慢查询比较困难,因为在自己测试的时候,就算查询有20万条数据的海量表,也只需要0.几秒。我们可以通过如下语句代替:
 
SELECT SLEEP(10);
 
查看慢查询的数量  通过如下sql语句,来查看一共执行过几次慢查询:
 
show global status like '%slow%';
 
这时候再看,已经开启了慢查询日志。
 
$ sudo cat /tmp/mysql-slow.log
 
/usr/local/mysql/bin/mysqld, Version: 5.6.40-log (Source distribution). started with:
 
Tcp port: 3306  Unix socket: /tmp/mysql.sock
 
Time                 Id Command    Argument
 
如果更改日志目录位置
 
比如,更改为/home/msyql/log/mysql-slow.log
 
至少需要将log目录所有者设置为mysql:mysql。
 
这样重启mysql的时候,才能自动生成mysql-slow.log文件。
 
jiqing@jiqing-pad:/home/mysql/log$ ll
 
总用量 12
 
drwxr-xr-x 2 mysql  mysql  4096 5月  31 01:46 ./
 
drwxr-xr-x 3 jiqing jiqing 4096 5月  31 01:26 ../
 
-rw-rw---- 1 mysql  mysql   175 5月  31 01:46 mysql-slow.log
 
jiqing@jiqing-pad:/home/mysql/log$ pwd
 
/home/mysql/log
 
如果log目录不是mysql用户权限,将无法生成日志文件,mysql用户无权写入数据。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章