0%

MySQL优化-(0)-预备篇-开启慢查询日志

1. 查看慢查询是否开启

– 查看慢查询日志开启否

show variables like 'slow_query_log';

slow_query_log OFF

2. 开启慢查询记录

– 开启慢查询日志记录

set global slow_query_log=on;

1 queries executed, 1 success, 0 errors, 0 warnings

查询:set global slow_query_log=on

共 0 行受到影响

执行耗时 : 0.008 sec
传送时间 : 0 sec
总耗时 : 0.008 sec

3. 查看慢查询日志存哪

– 查看慢查询日志存在哪里

show variables like '%slow_query_log%';

Variable_name Value
slow_query_log ON
slow_query_log_file /var/lib/mysql/niewj-slow.log

4. 多慢才算慢查询

show variables like 'long_query_time';

+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+

默认是10秒, 实验时可以改成2s:

set global long_query_time=2;

注意换个session才能查到(需要重新进入)

重新输入用户名密码:

mysql> show variables like 'long_query_time';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 2.000000 |
+-----------------+----------+
1 row in set (0.00 sec)

5. 模拟慢查询看会否进入慢查询日志:

select sleep(11);

tail -f /var/lib/mysql/niewj-slow.log

新生成日志:

# Time: 2020-09-10T09:08:18.578301Z
# User@Host: root[root] @ [121.69.51.10] Id: 17
# Query_time: 11.000328 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
use sakila;
SET timestamp=1599728898;
select sleep(11);

6. 打开全部日志(线上不要!)

set global log_queries_not_using_indexes=on;

7. 用JMeter压测MySQL

1.7.1 下载 mysql-connector-java-bin

https://dev.mysql.com/downloads/connector/j/

到官网下载合适的jar, 我的是mysql-connector-java-5.1.49-bin.jar 放到jmeter/bin下; 如果不行可以试试 jmeter/lib 或 jmeter/lib/ext下 , 重启jmeter再试试!

1.7.2 配置的JMeter内容

注意: JDBC Connection Configuration的 Variable Name for created pool 的名字要和 JDBC Request的 Variable Name of Pool declared in JDBC Connection Configuration这里一致!

image-20200910184445113