将可能较大的项目集合放在单个分区中可能会导致分区热。理想情况下,您选择的分区键会在各个分区之间平均分配数据。但是,关于如何实现这一点可能并不总是很清楚。
您可能会考虑在写入时将大分区分成较小的分区(aka写分片),并在读取时将其重新组合。例如,在创建GSIPK时,您可以在分区键中引入1到4之间的随机生成的整数:
您的GSI看起来像这样
现在,您的用户数据更均匀地分布在各个分区中。从表中读取用户时,您将一次从所有分区中拉出。可以并行执行以提高性能。
在此示例中,我选择了一个随机数将数据“分片”到单独的分区中。但是,您的数据可能更适合自然划分(例如,按国家/地区,启用状态,时区等)。我要强调的是,跨分区分配数据的策略可以与用于支持应用程序访问模式的数据模型分开。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句