本文共 1503 字,大约阅读时间需要 5 分钟。
在数据库管理中,了解和优化慢SQL查询是非常重要的。以下是一些常用的MySQL配置参数和操作方法。
在MySQL中,我们可以通过以下方式开启或关闭慢查询日志。
show variables like '%slow_query_log%';set GLOBAL slow_query_log = ON/OFF;
执行日志可以帮助我们跟踪数据库的操作日志,以下是开启执行日志的方法。
show variables like "general_log%";set GLOBAL general_log = 'ON';
长查询时间可以帮助我们识别执行时间过长的SQL查询。
show variables like '%long_query_time%';set long_query_time = 6;
我们可以将慢查询日志输出到指定的日志文件中。
show variables like '%slow_query_log_file%';set slow_query_log_file = '/home/admin/mysql/log/slow_sql.log';
如果需要输出未使用索引的查询,可以启用以下参数。
show variables like 'log_queries_not_using_indexes';set global log_queries_not_using_indexes = ON/OFF;
slow_query_log参数可以指定日志输出的方式。
show variables like 'log_output';set GLOBAL log_output = table/FILE;
如果你已经将慢查询日志设置为输出到表或文件,可以通过以下方式查看日志。
select * from mysql.slow_log;
MySQL自带的mysqldumpslow工具可以帮助我们分析慢查询日志。
mysqldumpslow -s t -t 10 -g 'log' /var/lib/mysql/mysql-slow.log
-s:指定排序规则。-t:显示前几个记录。-g:使用grep过滤。c:访问计数。l:锁定时间。r:返回记录。t:查询时间。al:平均锁定时间。ar:平均返回记录数。at:平均查询时间。可以通过information_schema系统数据库查看数据库的活跃线程。
select * from information_schema.processlist;
找出执行时间超过5分钟的线程。
select concat('kill ', id, ';') from information_schema.processlist where Command != 'Sleep' and Time > 300 order by Time desc; 除了root用户外,其他用户无法查看所有线程。你可以通过以下方式查看完整的进程列表。
show full processlist;
ID:线程ID。Time:线程运行时间。Info:线程执行的SQL。通过以上方法,你可以更好地监控和优化数据库性能,快速定位和解决性能瓶颈问题。
转载地址:http://kiizz.baihongyu.com/