MySQL常用的查询优化分析方法有哪些?

(1)EXPLAIN分析执行计划,如果要看得更加详细清晰可以使用EXPLAIN FORMAT=JSON

或者EXPLAIN FORMAT=TREE,EXPLAIN ANALYZE,注意后面两个是mysql 8之后的新增功能。

(2) Optimizer Trace

MySQL Optimizer Trace功能会跟踪MySQL优化器对查询优化过程的关键信息,比如扫描的行数,成本,以及为什么选择哪个执行计划,都是有明确的指示。

使用方法:

-- 开启optimizer trace

set optimizer_trace='enabled=on';

-- query;

执行你的SQL;

-- 查看optimizer trace记录

select * from information_schema.optimizer_trace;

(3)Profiling。最新的 MySQL 版本是默认开启 Show Profile 功能的。Show Profiles 只显示最近发给服务器的 SQL 语句,默认情况下是记录最近已执行的 15 条记录,我们可以重新设置 profiling_history_size 增大该存储记录,最大值为 100。获取到 Query_ID 之后,我们再通过 Show Profile for Query ID 语句,就能够查看到对应 Query_ID 的 SQL 语句在执行过程中线程的每个状态所消耗的时间。

除了以上工具以外,我们还需要去分析mysql慢查询日志,还有服务器状态指标 比如CPU ,连接数,有没有长事务,page指标等等。

相关推荐
kisdiem16 分钟前
RAG ENGINEERING · 中文教程从文档到可靠答案
数据库
SilentSamsara41 分钟前
向量数据库实战:Chroma/Milvus/Qdrant 选型与语义搜索应用
开发语言·数据库·人工智能·python·青少年编程·milvus
沪漂阿龙1 小时前
LangChain 系列之Agent:从固定流程到模型自主决策
服务器·数据库·langchain
zh_xuan1 小时前
PC端操作SQLite数据库
数据库·c++·sqlite
MXsoft6181 小时前
**采集节点主备模:保障监控系统自身高可用**
数据库
yyuuuzz2 小时前
独立站运营的几个技术层面常见问题
大数据·运维·服务器·网络·数据库·aws
IT策士2 小时前
Redis 从入门到精通:Redis Stream —— 可靠消息队列
数据库·redis·缓存
北风toto2 小时前
深度拆解:本体与智能体协同生成SQL的底层逻辑与工程实践
数据库·sql·microsoft
倒流时光三十年2 小时前
PostgreSQL NULLIF 条件表达式函数详解
数据库·sql·postgresql
代码小库2 小时前
【2026前端转 AI 全栈指南】第 2 章(下):NestJS 项目创建 · MongoDB 配置 · 项目启动与调试
前端·数据库·mongodb