MySQL慢查询是指执行时间超过预设阈值的SQL查询。慢查询日志是MySQL提供的一种功能,用于记录这些执行时间较长的查询语句,以便分析和优化数据库性能。
MySQL慢查询主要分为两类:
慢查询日志在以下场景中特别有用:
慢查询分天通常指的是将慢查询日志按照日期进行分割,以便更方便地管理和分析。这样做的好处是可以快速定位到特定日期的慢查询情况,便于进行针对性的优化。
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 1; -- 设置慢查询阈值,单位为秒
SET GLOBAL slow_query_log_file = '/var/log/mysql/slow-query.log'; -- 设置慢查询日志文件路径
可以编写一个简单的脚本,每天定时执行,将慢查询日志按照日期进行分割。以下是一个示例脚本:
#!/bin/bash
# 设置慢查询日志文件路径
LOG_FILE="/var/log/mysql/slow-query.log"
# 获取当前日期
DATE=$(date +%Y-%m-%d)
# 创建新的慢查询日志文件
NEW_LOG_FILE="/var/log/mysql/slow-query-${DATE}.log"
# 将当前慢查询日志内容追加到新文件中
cat $LOG_FILE >> $NEW_LOG_FILE
# 清空原慢查询日志文件
echo "" > $LOG_FILE
使用cron
等工具设置定时任务,每天执行上述脚本,实现慢查询日志的自动分割。
my.cnf
或my.ini
),确保慢查询日志相关配置已正确设置。EXPLAIN
命令分析慢查询的执行计划,找出性能瓶颈。通过以上方法,可以有效地管理和分析MySQL慢查询日志,进而提升数据库性能。
领取专属 10元无门槛券
手把手带您无忧上云