【发布时间】:2018-04-17 01:45:59
【问题描述】:
假设我有一个 Datastore 类型,它具有下面列出的两个属性,并且总体插入率非常高(但 random_key 的单个值的插入率很低):
-
random_key- 一个均匀分布的大数 -
time- 表示实体插入时间的单调递增时间戳
我主要关心对复合索引 (random_key ASC, time DESC) 的查询,而不关心仅对 time 字段的查询。
问题:但根据数据存储文档,创建此复合索引要求我不要从自动索引中排除 random_key 和 time 字段。根据最佳实践,在time 上建立索引会导致热点问题,因为它是单调递增的。
Google datastore - index a date created field without having a hotspot 等其他问题建议在时间戳前添加一个随机值以对数据进行分片。但我想尝试一种干净的方法,在另一个单独的属性random_key
问题:
我有哪些选择可以维护两个字段的复合索引,而不会出现与 time 上的自动索引相关的任何问题?
【问题讨论】:
标签: google-cloud-datastore google-cloud-platform