mysql慢日志开启_mysql开启慢查询日志

sql与索引优化

数据库表结构优化

系统配置

硬件

5b77d047dbe04c36ce8f2244839f20fb.png

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用户无权写入数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值