使用 EXPLAIN 优化查询
1. 什么是 EXPLAIN
EXPLAIN 用于展示 MariaDB 执行 SQL 查询时的执行计划,包含访问表的顺序、使用的索引、连接类型等信息,有助于发现查询中的性能问题。
2. 基本用法
在查询语句前加上 EXPLAIN:
EXPLAIN SELECT * FROM users WHERE age > 30;
`
结果包含多列重要信息:
id:查询序列号。select_type:查询类型(简单查询、联合查询等)。table:访问的表名。type:连接类型,性能依次递减,优选const、eq_ref等。possible_keys:可能使用的索引。key:实际使用的索引。rows:估计扫描的行数。Extra:额外信息,如是否使用临时表或文件排序。
3. 结合 EXPLAIN 优化查询
- 确保查询条件使用了索引(
key列不为空)。 - 避免全表扫描(
type不应为ALL)。 - 通过调整索引或重写 SQL 优化连接顺序。
- 避免在
WHERE子句对索引列使用函数或计算。
4. EXPLAIN ANALYZE
MariaDB 10.1 及以上版本支持 EXPLAIN ANALYZE,不仅显示执行计划,还实际执行查询并给出耗时:
EXPLAIN ANALYZE SELECT * FROM users WHERE age > 30;
使用 EXPLAIN 可以精准定位查询性能瓶颈,指导索引设计和 SQL 优化,提高数据库效率。
相关内容
- mariabackup 工具 本节介绍 MariaDB 官方的物理备份工具 mariabackup,包括安装、使用方法和常用参数,帮助实现高效的数据库备份和恢复。
- mysqldump 使用 本节介绍使用 mysqldump 工具备份和恢复 MariaDB 数据库,包括导出数据库、表和数据的常用命令及参数示例。
- 性能监控与配置 本节介绍 MariaDB 性能监控与配置方法,涵盖性能指标监测、参数调优及工具使用,帮助提升数据库稳定性和响应速度。
- 慢查询日志 本节介绍 MariaDB 慢查询日志的配置与使用方法,通过记录执行时间较长的 SQL 语句,帮助定位性能瓶颈,优化数据库查询效率。
- 常规恢复 本节介绍 MariaDB 常规恢复方法,包含从 mysqldump 和 mariabackup 备份文件中恢复数据库的步骤,确保数据安全快速恢复。
- PITR 时间点恢复 本节讲解 MariaDB 利用二进制日志实现时间点恢复(PITR),通过恢复备份及应用日志,精确恢复到指定时间点。