MySQL慢查询

快捷查看指令 ctrl+f 进行搜索会直接定位到需要的知识点和命令讲解(如有不正确的地方欢迎各位小伙伴在评论区提意见,博主会及时修改)

MySQL慢查询

MySQL 慢查询是指查询语句执行速度过慢,影响系统整体性能和查询效率的情况。MySQL 提供了慢查询日志来记录执行时间超过特定阈值(slow_query_log_time)的查询语句,可以通过分析慢查询日志找出查询语句执行缓慢的原因并进行优化。

MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过设定时间的语句

慢查询开启方法
命令开启
powershell 复制代码
特点:只对当此数据库运行生效,一旦数据库重启便失效
sql 复制代码
-- 1.查询当前数据库是否开启慢查询
mysql> show variables like "%slow%"; 
sql 复制代码
mysql> show variables like "%long%"; 
sql 复制代码
-- 2.修改慢查询阈值时间
mysql> set global long_query_time=2;  #将阈值时间改为2s,修改完成后由于刷新时间不确定需要重新登录查看
sql 复制代码
-- 3.开启慢查询
mysql> set global slow_query_log='ON'; 
sql 复制代码
-- 4.重新查看慢查询信息,验证是否开启
sql 复制代码
-- 5.查看sql日志记录是否开启
mysql>show variables like "%general_log%";
sql 复制代码
-- 6.开启sql日志记录,会将所有sql记录在指定位置
mysql>set global general_log='ON'; 
shell 复制代码
至此开启慢查询,当某个sql执行时间超过了指定阈值时间,将会记录到慢查询日志中
注意:
general_log的sql记录会记录所有的sql,日志量极大,日常一般只开启慢查询不开启sql日志记录,
只有当发现数据库异常(比如已经有慢查询产生)才会临时开启,以便完整掌握数据库信息
修改配置文件开启

特点:通过配置/etc/my.cnf配置文件开启,开启永久生效

powershell 复制代码
# 打开mysql的配置文件 /etc/my.cnf 添加如下信息
slow_query_log=1  #设置开启慢查询 值可以为1也可以为ON
slow_query_log_file=/opt/liuyh/log/mysql/mysql-slow.log  #设置慢查询日志位置,保证数据库所在用户拥有该位置权限
long_query_time=3  #设置慢查询阈值时间,单位s
powershell 复制代码
此处配置如果不生效,需要在log下面手动创建mysql目录,并将mysql的属主属组给到mysql用户(chown -R mysql:mysql mysql)
慢查询优化

以下是一些常见的优化方法:

  1. 创建索引:通过创建合适的索引来加速查询。可以使用 EXPLAIN 命令来查看查询语句的执行计划,从而判断是否需要创建索引。
  2. 优化查询语句:写出性能更好的查询语句,避免使用子查询、嵌套查询、多表连接等复杂语句,尽量减少跨表查询。
  3. 分析表结构:合理设计表结构,尽量减少字段数量、使用合适的数据类型、避免使用大字段等。
  4. 调整 MySQL 配置:根据系统负载和硬件配置,调整 MySQL 的配置参数,如调整缓存大小、最大连接数、并发连接数等。
  5. 使用缓存:使用缓存技术来减少对数据库的查询次数,如使用 Memcached、Redis 等缓存系统来缓存热点数据。
相关推荐
爱学习的阿磊24 分钟前
使用Fabric自动化你的部署流程
jvm·数据库·python
枷锁—sha30 分钟前
【SRC】SQL注入快速判定与应对策略(一)
网络·数据库·sql·安全·网络安全·系统安全
惜分飞42 分钟前
ORA-600 kcratr_nab_less_than_odr和ORA-600 4193故障处理--惜分飞
数据库·oracle
chian-ocean42 分钟前
CANN 生态进阶:利用 `profiling-tools` 优化模型性能
数据库·mysql
m0_550024631 小时前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python
AC赳赳老秦1 小时前
代码生成超越 GPT-4:DeepSeek-V4 编程任务实战与 2026 开发者效率提升指南
数据库·数据仓库·人工智能·科技·rabbitmq·memcache·deepseek
啦啦啦_99991 小时前
Redis-2-queryFormat()方法
数据库·redis·缓存
玄同7652 小时前
SQLite + LLM:大模型应用落地的轻量级数据存储方案
jvm·数据库·人工智能·python·语言模型·sqlite·知识图谱
吾日三省吾码2 小时前
别只会“加索引”了!这 3 个 PostgreSQL 反常识优化,能把性能和成本一起打下来
数据库·postgresql
chian-ocean2 小时前
百万级图文检索实战:`ops-transformer` + 向量数据库构建语义搜索引擎
数据库·搜索引擎·transformer