检查是否开启慢查询日志
javascript
show variables like "%slow%";
slow_query_log为 ON 表示已经开启慢查询日志记录。
slow_query_log_file:慢查询日志文件存放地址
设置慢查询 sql 记录阈值
大于 1s 的 sql 都会被记录到日志文件里面。系统默认 10s。mysql 重启会失效。
javascript
SET long_query_time = 1;
查看慢查询 sql 记录阈值
show variables like "long_query_time";
分析慢查询 sql 文件
所有数据库共用一个慢查询日志文件,搞个复杂 sql 执行一下。
可以发现这条 sql 执行了 3s 多,已经被记录进去了。后续直接分析这个文件即可。
Time :日志记录的时间 User@Host:执行的用户及主机 Query_time:查询耗费时间 Lock_time 锁表时间
Rows_sent 发送给请求方的记录条数 Rows_examined:语句扫描的记录条数 SET timestamp:语句执行的时间点
设置单条数据插入大小的最大阈值
选中数据库,运行如下指令即可,然后重新打开下数据库,检查配置是否生效
javascript
set global max_allowed_packet = 524288000;
show VARIABLES like '%max_allowed_packet%';