M S*_*ong 3 database data-modeling database-performance google-cloud-datastore google-cloud-platform
有据可查,快速写入具有单调递增值作为键或索引属性的实体类型对于性能来说是一个坏主意。
如何索引布尔属性或具有类似枚举值的属性(例如 Genders)上的实体?
我的猜测是对低基数属性进行索引可能会遇到同样的问题,因为这些属性没有内置类型。但也许对布尔属性有特殊处理?
Cloud Datastore 对低基数数据(例如布尔值和枚举)进行了优化。每个索引条目还包含实体键,然后可以让我们的底层 Bigtable 片有效地拆分,从而处理更大的负载。这是有效的,因为我们不需要考虑相同值的排序顺序,因此将它们随机分布在它们自己的键空间内对查询没有影响,并且实体键保证是唯一的,因此我们避免了冲突。
当我们索引一个值时,我们还会在末尾添加一个“分散键”属性,它本质上是一个随机整数。此分散键随后可用于查询拆分,从而允许 Cloud Dataflow 之类的东西高效地并行化针对此数据集的查询。
| 归档时间: |
|
| 查看次数: |
267 次 |
| 最近记录: |