| join | 必须带时间区间 |
|---|---|
| 索引 | 自然键+起止日期 |
| 分区 | 拉链表通常不按时间分区 |
标准关联
标准关联
SELECT f.order_id, d.tier
FROM fact_order f
JOIN dim_user d
ON f.user_id = d.user_id
AND f.order_time >= d.start_date
AND f.order_time < d.end_date;遗漏区间条件会让 join 行数按版本数成倍放大。
事实关联拉链维度时必须带业务时间区间条件,禁止只按自然键 join;为 (自然键, start_date, end_date) 建联合索引。
| join | 必须带时间区间 |
|---|---|
| 索引 | 自然键+起止日期 |
| 分区 | 拉链表通常不按时间分区 |
SELECT f.order_id, d.tier
FROM fact_order f
JOIN dim_user d
ON f.user_id = d.user_id
AND f.order_time >= d.start_date
AND f.order_time < d.end_date;