阿里云的mysql的explain

本文详细介绍了SQL查询的多种解释方式,包括LOGIC、EXECUTE、SHARDING、COST、ANALYZE和PHYSICAL等,展示了从逻辑执行计划到物理执行计划的全过程。通过这些解释,可以理解查询如何在数据库中执行,包括是否使用索引、全表扫描、分片情况、执行代价和实际运行统计。此外,还提到了explain advisor如何基于统计信息为查询优化提供建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EXPLAIN {LOGICALVIEW | LOGIC | SIMPLE | DETAIL | EXECUTE | PHYSICAL | OPTIMIZER | SHARDING | COST | ANALYZE | BASELINE | JSON_PLAN | ADVISOR} {SELECT statement | DELETE statement | INSERT statement | REPLACE statement| UPDATE statement}

mysql> explain select count(*) from lineitem group by L_ORDERKEY;
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| LOGICAL EXECUTIONPLAN                                                                                                                                                              |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Project(count(*)="count(*)")                                                                                                                                                       |
|   HashAgg(group="L_ORDERKEY", count(*)="SUM(count(*))")                                                                                                                            |
|     Gather(concurrent=true)                                                                                                                                                        |
|       LogicalView(tables="[000000-000003].lineitem_[00-15]", shardCount=16, sql="SELECT `L_ORDERKEY`, COUNT(*) AS `count(*)` FROM `lineitem` AS `lineitem` GROUP BY `L_ORDERKEY`") |
| HitCache:false                                                                                                                                                                     |                                                                                                                                                               |
| TemplateId: 5819c807                                                                                                                                                               |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

其中,HitCache标记该查询是否命中PlanCache,取值为false or trueTemplateId表示对该计划的标识,具有全局唯一性。

explain execute语句:表示下推SQL在mysql的执行情况,这个语句和mysql的explain语句同义。通过该语句可以查看下推SQL在DN上有没有使用索引,有没有做全表扫描。

explain sharding语句:展示当前查询在DN上扫描的物理分片情况

explain cost语句:相对于explain语句,除了展示执行计划以外,还会显示各个算子基于统计信息估算的代价,以及这条查询被优化器识别的WORKLOAD。

explain analyze语句:相对于explain cost语句,除了显示各个算子基于统计信息估算的代价以外,该语句可以收集真实运行过程中算子输出的rowCount等信息

explain physical语句:展示查询在运行过程中执行模式、各个执行片段(Fragment)的依赖关系和并行度。该查询被识别为单机单线程计划模式(TP_LOCAL),执行计划被分为三个片段Fragment-0、Fragment-1和Fragment-2,先做预聚合再做最终的聚合计算,每个片段的执行度可以不同。

explain advisor语句:主要是会基于统计信息,分析当前查询的执行计划,给用户推荐可以加速查询的全局二级索引。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值