面试题答案
一键面试片键选择
选择客户ID作为片键。
原因
- 查询针对性:主要查询是按客户ID和下单时间范围查询,以客户ID作为片键能将同一客户的订单数据分布在相同的分片上,这样当查询特定客户在某个时间范围的订单时,只需要在对应分片上查找,减少跨分片查询,提升查询效率。
- 数据局部性:同一客户的订单数据相对集中,利于提升查询局部性,减少网络I/O开销。
可能存在的问题
- 热点分片:如果某些客户的订单量远多于其他客户,会导致数据倾斜,使承载这些热门客户数据的分片成为热点分片,承受过多负载,影响整体性能。
- 扩展性问题:随着数据增长,如果客户分布不均匀,可能无法有效利用集群资源,限制集群扩展性。