mysql or 阿里云RDS 随记

函数

SQL优化

表分区

索引

水位线

执行计划,explain

EXPLAIN 是 MySQL 中的一个关键字,用于解释查询执行计划,帮助你理解查询是如何执行的以及使用了哪些索引。执行 EXPLAIN 命令后,MySQL 会返回一组结果,称为"执行计划"或"查询计划",用于优化查询性能。

下面是 EXPLAIN 命令的语法:

EXPLAIN SELECT your_columns FROM your_table WHERE your_conditions;

以下是 EXPLAIN 结果中常见的列和其含义:

  1. id: 这是一个数字,表示查询中执行的序列号。如果查询是复合查询(例如使用子查询或连接),那么 id 将有多个不同的值。

  2. select_type: 表示查询的类型,常见的取值有:

    • SIMPLE: 简单查询,不包含子查询或 UNION。
    • PRIMARY: 复合查询中的最外层查询。
    • SUBQUERY: 子查询。
    • UNION: UNION 查询。
    • DEPENDENT SUBQUERY: 依赖外部查询的子查询。
    • DERIVED: 衍生表,临时表。
  3. table: 显示与查询相关的表名。

  4. partitions: 显示查询涉及的分区,如果表使用了分区。

  5. type: 表示表访问的方式,是一个重要的性能指标。常见的取值有:

    • ALL: 全表扫描,需要遍历所有记录。
    • index: 索引扫描,遍历索引树。
    • range: 范围扫描,使用索引的一部分。
    • ref: 使用非唯一索引进行查找。
    • const: 表示使用主键或唯一索引查找,最多返回一行数据。
    • eq_ref: 类似 const,但是在连接操作中使用,返回匹配的行。
  6. possible_keys: 表示查询可能使用的索引列表。

  7. key: 表示实际选择的索引。如果没有选择索引,则为 NULL。

  8. key_len: 表示索引使用的字节数。这对于分析索引的效率很有用。

  9. ref: 显示哪个列或常数与索引一起使用。

  10. rows: 表示 MySQL 估计在执行查询时需要扫描的行数。

  11. filtered: 表示在 WHERE 条件中过滤的行的百分比。

  12. Extra: 提供额外的执行信息,如使用了临时表、文件排序等。

通过阅读 EXPLAIN 结果,你可以了解 MySQL 是如何处理查询的,以及是否有效地使用了索引。这有助于你优化查询语句和表结构,以提高查询性能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值