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指标等等。

相关推荐
Dreamcatcher_AC几秒前
Node.js留言板开发全流程解析
前端·javascript·mysql·node.js·express
天空属于哈夫克35 分钟前
企业微信 API 开发:外部群自动化推送的技术实现
数据库·microsoft
脑子慢且灵8 分钟前
写项目之数据库使用有感
数据库·er图
倒流时光三十年16 分钟前
PostgreSQL 高级特性. FILTER RETURNING 特性
数据库·postgresql·filter·sql调优
填满你的记忆18 分钟前
【从零开始——Redis 进化日志|Day1】初见 Redis,开启内存加速之旅
数据库·redis·缓存
么么...21 分钟前
掌握 MySQL:约束、范式与视图详解
数据库·经验分享·sql·mysql
盒马coding23 分钟前
高性能MySQL到PostgreSQL异构数据库转换工具MySQL2PG
数据库·mysql·postgresql
小Mie不吃饭23 分钟前
Spring boot + mybatis-plus + Redis 实现数据多级缓存(模拟生产环境)
java·spring boot·redis·mysql·缓存
摇滚侠25 分钟前
RocketMQ 教程丨深度掌握 MQ 消息中间件,RocketMQ 集群,笔记 28-38
数据库·笔记·rocketmq
Gobysec27 分钟前
Goby 漏洞安全通告|MongoDB Zlib 信息泄露漏洞(CVE-2025-14847)
数据库·安全·mongodb·漏洞检测工具