news 2026/4/23 14:52:09

MySQL 如何定位分析慢查询?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL 如何定位分析慢查询?

文章目录

    • 1. 开启/检查慢日志
    • 2. 分析日志
    • 3. 用explain分析执行计划
      • 1. `type` ⭐⭐⭐(**最关键字段!**)
      • 2. `rows` ⭐
      • 3. `key` ⭐
      • 4.`Extra` ⭐⭐⭐(**隐藏陷阱!**)

1. 开启/检查慢日志

  • 看一下是否开启慢日志
SHOWVARIABLESLIKE'slow_query_log';SHOWVARIABLESLIKE'long_query_time';SHOWVARIABLESLIKE'slow_query_log_file';
  • 如果未开启,临时开启(生产环境建议永久配置):
SETGLOBALslow_query_log=ON;SETGLOBALlong_query_time=1;

2. 分析日志

  • mysqldumpslow(MySQL 自带)
    # 按执行次数排序前10条mysqldumpslow-sc-t10/var/log/mysql/slow.log# 按总耗时排序前10条mysqldumpslow-st-t10/var/log/mysql/slow.log

3. 用explain分析执行计划

  • 在SQL前面加explain
    EXPLAINSELECTid,order_noFROMordersWHEREuser_id=100ANDcreate_time>='2024-01-01'ORDERBYcreate_timeDESC;
    • 重点查看四个字段
字段看什么
type是否出现 ALL(全表扫描)
rows扫描行数是否过大
key是否使用到了正确索引
Extra是否出现Using filesortUsing temporary

1.type⭐⭐⭐(最关键字段!

访问效率从高到低:

system > const > eq_ref > ref > range > index > ALL
说明是否理想
const通过主键/唯一索引查一行(如WHERE id=1✅ 最优
eq_ref多表连接时,使用主键或唯一索引关联✅ 优秀
ref使用非唯一索引等值查询✅ 良好
range索引范围扫描(如BETWEEN,IN,>⚠️ 可接受
index全索引扫描(遍历整个索引树)❌ 避免
ALL全表扫描❌ 必须优化!

💡目标:让type至少达到range,最好ref或更高。


2.rows

  • 含义预估需要扫描的行数
  • 原则
    • 越小越好
    • 如果type=ALLrows很大 → 性能灾难!

3.key

  • 含义实际使用的索引
  • 关键检查
    • 是否为NULL?→ 未走索引!
    • 是否是你期望的索引?→ 可能索引失效(如函数操作、隐式转换)

4.Extra⭐⭐⭐(隐藏陷阱!

包含重要性能提示:

问题优化方案
Using where服务层过滤(正常)
Using index覆盖索引(无需回表)✅ 理想状态
Using index condition索引条件下推(ICP,MySQL 5.6+)✅ 优化
Using filesort无法用索引排序,需额外排序ORDER BY字段加索引
Using temporary创建临时表(如GROUP BY无索引)为分组字段加索引
Select tables optimized away优化器直接返回结果(如MIN/MAX✅ 极优

💥看到Using filesortUsing temporary必须优化!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 11:28:59

联想拯救者BIOS隐藏选项终极解锁指南:一键开启高级功能

联想拯救者BIOS隐藏选项终极解锁指南:一键开启高级功能 【免费下载链接】LEGION_Y7000Series_Insyde_Advanced_Settings_Tools 支持一键修改 Insyde BIOS 隐藏选项的小工具,例如关闭CFG LOCK、修改DVMT等等 项目地址: https://gitcode.com/gh_mirrors/…

作者头像 李华
网站建设 2026/4/23 10:36:20

Realtek 8852AE Wi-Fi 6驱动完整安装与优化配置终极指南

Realtek 8852AE Wi-Fi 6驱动完整安装与优化配置终极指南 【免费下载链接】rtw89 Driver for Realtek 8852AE, an 802.11ax device 项目地址: https://gitcode.com/gh_mirrors/rt/rtw89 还在为Linux系统下的Wi-Fi 6网卡驱动烦恼吗?🤔 这款专为Real…

作者头像 李华
网站建设 2026/4/16 13:25:53

Qwen3-8B-MLX:一键切换双模式,AI推理更智能高效

Qwen3-8B-MLX:一键切换双模式,AI推理更智能高效 【免费下载链接】Qwen3-8B-MLX-6bit 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen3-8B-MLX-6bit 导语:Qwen3-8B-MLX-6bit模型正式发布,通过创新的"思考模式…

作者头像 李华
网站建设 2026/4/19 3:24:01

mybatisplus乐观锁控制IndexTTS2并发任务冲突

MyBatis-Plus 乐观锁在 IndexTTS2 并发任务控制中的实践 在当前 AI 音频生成系统日益普及的背景下,语音合成(TTS)平台如 IndexTTS2 已广泛应用于虚拟主播、智能客服和有声内容生产等场景。随着用户量增长和功能扩展,原本为单机本地…

作者头像 李华
网站建设 2026/4/23 7:56:58

Cockos REAPER(音频录制和编辑程序)

链接:https://pan.quark.cn/s/dc367474f9eaCockos REAPER是一款来自国外的非常简单实用的音频处理类软件,包含多轨录音、音频混缩、MIDI编辑与母带处理等多项功能,软件采用64位音频引擎,支持目前流行的各类DX、VST音频插件与软音源…

作者头像 李华
网站建设 2026/4/23 7:56:56

Steam自动关机终极指南:如何让电脑在游戏下载完成后自动关机

Steam自动关机终极指南:如何让电脑在游戏下载完成后自动关机 【免费下载链接】SteamShutdown Automatic shutdown after Steam download(s) has finished. 项目地址: https://gitcode.com/gh_mirrors/st/SteamShutdown 还在为深夜下载Steam游戏而担心电脑通宵…

作者头像 李华