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

相关推荐
J超会运13 小时前
OpenEuler系统MySQL备份恢复全攻略
mysql·mysql备份
Carino_U13 小时前
全面理解mysql架构
mysql·adb·架构
小的~~13 小时前
使用StreamLoad向Doris-4.0.3版本的聚合表导数据超时问题
运维·服务器·数据库
笑梦无境13 小时前
mysql基础篇一(多年前整理)
数据库·mysql
Yushan Bai13 小时前
HP-UX平台Oracle启动实例遭遇ORA-27300/ORA-27301/ORA-27302报错
数据库·oracle·ux
山佳的山13 小时前
Kingbase 身份认证与权限控制实践—数据库安全的第一道防线
数据库
数据库幼崽13 小时前
proxy SQL Bootstrap模式
mysql
深蓝轨迹13 小时前
解决Redis排序后MySQL查询乱序问题:从原因到落地(通用版)
数据库·redis·笔记·mysql·bug
jnrjian14 小时前
预估 PURGE DBA_RECYCLEBIN 执行时间 v$SESSION_LONGOPS 6 秒限制
数据库·dba
尽兴-14 小时前
Git 分支管理核心命令科普指南
数据库·git·分支管理·代码仓库