面试题答案
一键面试常见分区类型
- 范围分区:按照给定列的值的范围进行分区。例如可以按日期范围、数值范围等。适合数据有明显范围规律的场景,比如按时间范围划分数据,不同时间段的数据存放在不同分区。
- 哈希分区:通过对给定列计算哈希值,根据哈希值分配到不同分区。它能均匀分布数据,适合数据无明显范围规律,但希望均匀存储的场景,避免数据倾斜。
- 列表分区:根据列的离散值进行分区。比如根据地区名称、状态码等固定离散值来划分分区。
订单表分区类型选择
- 按下单时间进行范围分区:如果业务上经常按时间范围(如按月、按季度)统计订单数据,或者希望将历史订单按时间归档到不同分区,方便管理和清理数据,那么范围分区比较合适。例如按月份划分,每个月的订单数据存放在一个分区,便于查询特定月份区间的订单。
- 按订单ID进行哈希分区:若主要关注订单的均匀分布,避免数据在某些分区过于集中,影响查询性能,且没有明显基于订单ID的范围查询需求,可采用哈希分区。这样能让订单数据均匀分布在各个分区,提高并发查询性能。
- 按订单金额进行范围分区:当业务需要根据订单金额范围进行分析,如统计不同金额区间的订单数量、销售额等,按订单金额范围分区可以快速定位特定金额区间的数据,提高查询效率。