如何设计GaussDB分区表?分区和分片有什么区别?
考察点:分区与分片的组合设计能力。
参考答案:
- 分片(Sharding):数据分布在不同节点,解决扩展性问题
- 分区(Partitioning):数据在同一节点内按规则划分,解决管理和查询效率问题
- 组合使用:先按分片键分布到不同DN,再在每个DN内按时间范围分区
示例:订单表按user_id分片,再按order_date按月分区
sql
CREATE TABLE orders (
order_id BIGINT,
user_id INT,
order_date DATE,
amount DECIMAL
) DISTRIBUTE BY HASH(user_id)
PARTITION BY RANGE(order_date) (
PARTITION p202501 VALUES LESS THAN ('2025-02-01'),
PARTITION p202502 VALUES LESS THAN ('2025-03-01')
);
查看3道真题和解析