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

相关推荐
aq553560012 小时前
Laravel4.x革命性升级:现代PHP开发新纪元
数据库·oracle
Trouvaille ~12 小时前
【MySQL篇】内外连接:多表关联的完整指南
android·数据库·mysql·面试·后端开发·dql·内外连接
KKKlucifer12 小时前
三权分立 + AI 审计:解析国内堡垒机的合规与智能双引擎
大数据·数据库·人工智能
空太Jun12 小时前
Redis 5大核心数据类型与持久化实战
数据库·redis·缓存
Java面试题总结12 小时前
Spring Boot 包扫描新姿势:AutoScan vs @Import vs @ComponentScan 深度对比
java·数据库·spring boot
geovindu12 小时前
go: Model,Interface,DAL ,Factory,BLL using mysql
开发语言·mysql·设计模式·golang·软件构建
人工干智能13 小时前
科普:pandas 中的类 SQL语句:transaction.groupby(“card_id“)[‘purchase_day‘].diff()
数据库·sql·pandas
梦想与想象-广州大智汇13 小时前
MySQL 同步数据到 ClickHouse 方案对比分析
数据库·mysql·clickhouse
雨墨✘13 小时前
如何解决SQL多表查询数据重复问题_使用DISTINCT与JOIN优化
jvm·数据库·python
yuezhilangniao13 小时前
centos7安装mysql57- 2026整理 mysql5.7.44
mysql