MySQL慢查询优化_MySQL慢查询排查_MySQL慢查询设置配置

编程教程 > Java (1667) 2025-08-04 16:36:12

引言

MySQL数据中有记录慢查询的一种手段。并且是MySQL自带的。可用来排查那些查询sql语句执行得慢。从而给开发者提供一个调优得依据。

临时方案(不用重启MySQL服务)

1.开启慢查询日志

SET GLOBAL slow_query_log = ON;

2.设置全局慢查询阈值(示例设为2秒)

SET GLOBAL long_query_time = 2;

3.【可选】刷新日志

注意:MySQL 8.0+为必须操作

FLUSH LOGS;

4.关闭记录未使用索引的查询

SET GLOBAL log_queries_not_using_indexes = OFF;

特别提醒:该操作启用后MySQL8.0+ 慢查询的阈值失效,会记录所有SQL

 

验证配置

查看慢查询日志开启状态和日志存放路径SQL

SHOW VARIABLES LIKE '%slow_query%';
MySQL慢查询优化_MySQL慢查询排查_MySQL慢查询设置配置_图示-b4d80db9bbd343ddaaa4c88da2ac25e8.png
结果参考

查看慢查询阈值

SHOW VARIABLES LIKE '%long_query%';
MySQL慢查询优化_MySQL慢查询排查_MySQL慢查询设置配置_图示-c6236ed20b22432f82a1b03e63e7eed6.png
查询结果参考

永久生效方案(需要重启MySQL服务)

1.查看是否开启慢查询记录功能及慢查询日志存放路径信息

show variables like 'slow_query%';
mysql> show variables like 'slow_query%';
+---------------------------+----------------------------------+
| Variable_name             | Value                            |
+---------------------------+----------------------------------+
| slow_query_log            | OFF                              |
| slow_query_log_file       | /mysql/data/localhost-slow.log   |
+---------------------------+----------------------------------+

2.查看设置的长时间记录阈值(超过这个时间将会被记录到上方配置的日志文件中)


mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+

MySQL慢查询使用之配置相关参数

配置慢查询日志启用/停用、日志存放路径、记录时间阈值修改
方式一:即时生效MySQL服务重启失效:

#设置日志存放路径
set global slow_query_log_file='/usr/local/mysql/data/slow.log';
#设置启用(ON)/停用日志(OFF)
set global slow_query_log='ON'; 
#设置慢查询阈值时间;下面是超过1秒就记录
set global long_query_time=1;

方式二:重启MySQL服务生效:

[mysqld]
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/data/slow.log
long_query_time = 1


测试:

select sleep(2);

查看慢查询日志记录:

cat /usr/local/mysql/data/slow.log

评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
MySQL慢查询优化_MySQL慢查询排查_MySQL慢查询设置配置
JVM调优总结篇(一),这里主要搬运了csdn大神得总结。收藏以后可能会用到
常用JVM内存设置以及调优JVM内存简介JVM占用的内存称为堆(heap),他被分成三个区:1&gtl;年轻(young,又称为new)2&gtl;老(tenred,又称为ol
本文针对Java虚拟机对程序性能影响,通过设置不同的Java虚拟机参数来提升程序的性能。首先从Java虚拟机各个性能方面来进行监控,找出Java虚拟机中可能对程序性能影响较大的,然后先通过小实验...
MySQL索引优化,MySQL索引类型,MySQL索引怎么用MySQL索引怎么创建这里将会通过一些简单得sql进行讲解
mysql索引的使用基础知识摘录。
在导入sql备份文件到MySQL数据库中,无论物理机安装MySQL还是docker环境安装的MySQL,思路是一样的。首先,登录进入MySQL如果是物理的,则直接执行命令mysql-u-p&gt...
Centos MySql数据库找回root密码
MySQL分页_MySQL分页语句_MySQ如何使用limit分页,本博客将会详细讲解mysql中的分页查询。讲清楚MySQL如何编写分页查询语句。
MySQL查询中null转0
MySQL5.6数据库双机主从热备配置
MySQL 安装,MySQL 安装了5.6版本,修改安装目录下的默认配置文件重启后配置无效。
windows系统MySQL忘记root密码找回,MySQL服务停止后通过命令临时启动
centos7中mysql配置my.cnf字符集utf-8,mysql5.6中文乱码
运行篇命令:# docker run -d -v /jenkins/mysql55:/var/lib/mysql -p 3306:3306 --name mysql55 -e MYSQL_ROO...