-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
查询基表 在物化视图 Union Rewrite会扫描所有字段,严重降低查询性能 #55221
Comments
Thanks for your feedback. Can you provide the base table and mv's schema, let me check it. |
table schema: mv schema: |
版本 3.3.9 存算一体部署
基表是小时级的分区表,实时追加写入,物化视图是每天更新一次的天级分区物化视图
Query Profile
17d77a65-d567-11ef-95d9-00163e3d4879profile.txt
执行计划如下,此查询耗时14s920ms
mysql> explain
-> select date_trunc('day', data_date),sum(ssp_req),sum(dsp_req),sum(dsp_fill_req)
-> from adx.mammut_adx_slot_pkg_hi
-> where data_date >= '2025-01-17 00:00:00' and data_date < '2025-01-19 00:00:00'
-> group by date_trunc('day', data_date)
-> order by date_trunc('day', data_date);
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Explain String |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| PLAN FRAGMENT 0 |
| OUTPUT EXPRS:51: date_trunc | 52: sum | 53: sum | 54: sum |
| PARTITION: UNPARTITIONED |
| |
| RESULT SINK |
| |
| 15:MERGING-EXCHANGE |
| |
| PLAN FRAGMENT 1 |
| OUTPUT EXPRS: |
| PARTITION: HASH_PARTITIONED: 55: data_date |
| |
| STREAM DATA SINK |
| EXCHANGE ID: 15 |
| UNPARTITIONED |
| |
| 14:SORT |
| | order by: <slot 51> 51: date_trunc ASC |
| | offset: 0 |
| | |
| 13:Project |
| | <slot 51> : 55: data_date |
| | <slot 52> : 222: sum |
| | <slot 53> : 223: sum |
| | <slot 54> : 224: sum |
| | |
| 12:AGGREGATE (merge finalize) |
| | output: sum(222: sum), sum(223: sum), sum(224: sum) |
| | group by: 55: data_date |
| | |
| 11:EXCHANGE |
| |
| PLAN FRAGMENT 2 |
| OUTPUT EXPRS: |
| PARTITION: RANDOM |
| |
| STREAM DATA SINK |
| EXCHANGE ID: 11 |
| HASH_PARTITIONED: 55: data_date |
| |
| 10:AGGREGATE (update serialize) |
| | STREAMING |
| | output: sum(90: ssp_req), sum(94: dsp_req), sum(93: dsp_fill_req) |
| | group by: 55: data_date |
| | |
| 0:UNION |
| | |
| |----9:EXCHANGE |
| | |
| 3:EXCHANGE |
| |
| PLAN FRAGMENT 3 |
| OUTPUT EXPRS: |
| PARTITION: HASH_PARTITIONED: 197: date_trunc, 198: to_date, 164: media_id, 165: dsp_id, 166: target_id, 169: media_slot_type, 170: media_slot_id, 167: dsp_slot_id, 168: adx_slot_id, 177: platform, 174: sdkv, 175: pkg, 176: dsp_pkg, 173: conv_type_id, 171: dsp_slot_type, 172: adx_dsp_slot_id, 182: julang_task_id, 183: policy_id, 184: experiment_id, 180: media_tier, 179: media_category, 178: integrate_by, 181: version |
| |
| STREAM DATA SINK |
| EXCHANGE ID: 09 |
| RANDOM |
| |
| 8:AGGREGATE (merge finalize) |
| | output: sum(199: sum), sum(202: sum), sum(203: sum) |
| | group by: 197: date_trunc, 198: to_date, 164: media_id, 165: dsp_id, 166: target_id, 169: media_slot_type, 170: media_slot_id, 167: dsp_slot_id, 168: adx_slot_id, 177: platform, 174: sdkv, 175: pkg, 176: dsp_pkg, 173: conv_type_id, 171: dsp_slot_type, 172: adx_dsp_slot_id, 182: julang_task_id, 183: policy_id, 184: experiment_id, 180: media_tier, 179: media_category, 178: integrate_by, 181: version |
| | |
| 7:EXCHANGE |
| |
| PLAN FRAGMENT 4 |
| OUTPUT EXPRS: |
| colocate exec groups: ExecGroup{groupId=6, nodeIds=[4, 5, 6]} |
| PARTITION: RANDOM |
| |
| STREAM DATA SINK |
| EXCHANGE ID: 07 |
| HASH_PARTITIONED: 197: date_trunc, 198: to_date, 164: media_id, 165: dsp_id, 166: target_id, 169: media_slot_type, 170: media_slot_id, 167: dsp_slot_id, 168: adx_slot_id, 177: platform, 174: sdkv, 175: pkg, 176: dsp_pkg, 173: conv_type_id, 171: dsp_slot_type, 172: adx_dsp_slot_id, 182: julang_task_id, 183: policy_id, 184: experiment_id, 180: media_tier, 179: media_category, 178: integrate_by, 181: version |
| |
| 6:AGGREGATE (update serialize) |
| | STREAMING |
| | output: sum(185: ssp_req), sum(154: dsp_fill_req), sum(186: dsp_req) |
| | group by: 197: date_trunc, 198: to_date, 164: media_id, 165: dsp_id, 166: target_id, 169: media_slot_type, 170: media_slot_id, 167: dsp_slot_id, 168: adx_slot_id, 177: platform, 174: sdkv, 175: pkg, 176: dsp_pkg, 173: conv_type_id, 171: dsp_slot_type, 172: adx_dsp_slot_id, 182: julang_task_id, 183: policy_id, 184: experiment_id, 180: media_tier, 179: media_category, 178: integrate_by, 181: version |
| | |
| 5:Project |
| | <slot 154> : 154: dsp_fill_req |
| | <slot 164> : 164: media_id |
| | <slot 165> : 165: dsp_id |
| | <slot 166> : 166: target_id |
| | <slot 167> : 167: dsp_slot_id |
| | <slot 168> : 168: adx_slot_id |
| | <slot 169> : 169: media_slot_type |
| | <slot 170> : 170: media_slot_id |
| | <slot 171> : 171: dsp_slot_type |
| | <slot 172> : 172: adx_dsp_slot_id |
| | <slot 173> : 173: conv_type_id |
| | <slot 174> : 174: sdkv |
| | <slot 175> : 175: pkg |
| | <slot 176> : 176: dsp_pkg |
| | <slot 177> : 177: platform |
| | <slot 178> : 178: integrate_by |
| | <slot 179> : 179: media_category |
| | <slot 180> : 180: media_tier |
| | <slot 181> : 181: version |
| | <slot 182> : 182: julang_task_id |
| | <slot 183> : 183: policy_id |
| | <slot 184> : 184: experiment_id |
| | <slot 185> : 185: ssp_req |
| | <slot 186> : 186: dsp_req |
| | <slot 197> : date_trunc('day', 163: data_date) |
| | <slot 198> : to_date(163: data_date) |
| | |
| 4:OlapScanNode |
| TABLE: mammut_adx_slot_pkg_hi |
| PREAGGREGATION: ON |
| PREDICATES: date_trunc('day', 163: data_date) >= '2025-01-17 00:00:00', date_trunc('day', 163: data_date) < '2025-01-19 00:00:00' |
| partitions=15/120 |
| rollup: mammut_adx_slot_pkg_hi |
| tabletRatio=90/90 |
| tabletList=575061,575064,575067,575070,575073,575076,575555,575558,575561,575564 ... |
| cardinality=71305099 |
| avgRowSize=171.23503 |
| |
| PLAN FRAGMENT 5 |
| OUTPUT EXPRS: |
| PARTITION: RANDOM |
| |
| STREAM DATA SINK |
| EXCHANGE ID: 03 |
| RANDOM |
| |
| 2:Project |
| | <slot 101> : 101: data_date |
| | <slot 136> : 136: ssp_req |
| | <slot 139> : 139: dsp_fill_req |
| | <slot 140> : 140: dsp_req |
| | |
| 1:OlapScanNode |
| TABLE: mammut_adx_slot_pkg_day_async_mv01 |
| PREAGGREGATION: ON |
| partitions=1/6 |
| rollup: mammut_adx_slot_pkg_day_async_mv01 |
| tabletRatio=3/3 |
| tabletList=575808,575811,575814 |
| cardinality=4987523 |
| avgRowSize=32.0 |
| MaterializedView: true |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
The text was updated successfully, but these errors were encountered: