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 等缓存系统来缓存热点数据。
相关推荐
RestCloud24 分钟前
跨境数据传输:ETL如何处理时区与日期格式差异
mysql·api
RestCloud44 分钟前
揭秘 CDC 技术:让数据库同步快人一步
数据库·api
得物技术4 小时前
MySQL单表为何别超2000万行?揭秘B+树与16KB页的生死博弈|得物技术
数据库·后端·mysql
xiaok5 小时前
mysql中怎么创建一个可控权限数据库账号密码给到开发者
mysql
可涵不会debug8 小时前
【IoTDB】时序数据库选型指南:工业大数据场景下的技术突围
数据库·时序数据库
ByteBlossom8 小时前
MySQL 面试场景题之如何处理 BLOB 和CLOB 数据类型?
数据库·mysql·面试
玉衡子8 小时前
九、MySQL配置参数优化总结
java·mysql
麦兜*8 小时前
MongoDB Atlas 云数据库实战:从零搭建全球多节点集群
java·数据库·spring boot·mongodb·spring·spring cloud
Slaughter信仰8 小时前
深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第十章知识点问答(10题)
java·jvm·数据库
麦兜*8 小时前
MongoDB 在物联网(IoT)中的应用:海量时序数据处理方案
java·数据库·spring boot·物联网·mongodb·spring