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

相关推荐
gb421528714 小时前
ChromaDB向量数据库的特点
数据库
IvorySQL15 小时前
PostgreSQL 日报| GiST 索引扫描可见性缺陷(8 月 3 日)
数据库·人工智能·postgresql·开源
xiaoxiangsiyan15 小时前
LNMP + Redis Sentinel 高可用架构部署手册(续)
运维·网络·数据库·redis·缓存·架构·sentinel
刘婉晴15 小时前
【Web漏洞】SQL 注入实战技巧
前端·数据库·sql
CodeHackerBhx16 小时前
Spring Boot 4 防重复提交:从接口幂等到 Redis 分布式锁的完整实践
java·数据库·spring boot·redis·分布式
xlxxy_16 小时前
外部系统调用SAP接口遇到的一些报错
开发语言·数据库·sap·abap
文档搬运工16 小时前
proxySQL 学习
mysql
麦聪聊数据16 小时前
连锁零售全域数据管控(下):API 化服务输出,释放全域数据业务价值
数据库
奇树谦16 小时前
NAS + 对象存储 + LMDB/HDF5:海量小文件存储最佳实践
数据库
观远数据17 小时前
决策闭环的第三公里:从洞察到行动之间,AI能补上什么
大数据·数据库·人工智能