在数据存储区中索引布尔型或类似枚举的属性对于快速写入来说不是一个好主意吗? [英] Is indexing a boolean or enum-like property in Datastore a bad idea for fast writes?

本文介绍了在数据存储区中索引布尔型或类似枚举的属性对于快速写入来说不是一个好主意吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

well documented是,快速写入以单调递增的值作为键或索引属性的实体类型不利于性能。

如何索引布尔属性或具有类似枚举的值(如性别)的属性上的实体?

我猜测在低基数属性上索引可能会遇到同样的问题,因为这类属性没有内置类型。但也许对布尔属性有特殊处理?

推荐答案

云数据存储针对布尔值和枚举等低基数数据进行了优化。每个索引条目还包含实体键,这样我们的底层Bigtable平板电脑就可以有效地拆分,从而处理更大的负载。这是可行的,因为我们不需要考虑相同值的排序顺序,因此将它们随机分布在它们自己的键空间中对查询没有影响,并且可以保证实体键是唯一的,因此我们避免了冲突。

当我们为一个值编制索引时,我们还在末尾添加了一个"散布键"属性,该属性本质上是一个随机整数。然后,此散点键可用于稍后的查询拆分,从而允许云数据流之类的东西针对此数据集高效地并行化查询。

这篇关于在数据存储区中索引布尔型或类似枚举的属性对于快速写入来说不是一个好主意吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆