Couchbase是订购的键值存储吗?

西蒙妮

Couchbase中的文档是否按关键顺序存储?换句话说,它们是否允许有效查询来检索键在一定范围内的所有文档?特别是我需要知道Couchbase lite是否适用。

安迪

查询效率与添加到服务器的视图的构造相关。

Couchbase / Couchbase Lite仅在这些视图中存储程序员指定和生成的索引。当Couchbase重新平衡时,它会在节点之间移动文档,因此,要保证或保持键顺序似乎不切实际。

(很少有数据库/数据存储能够保证磁盘上的文档或行顺序,因为索引更便宜地提供了此功能。)

Couchbase文档检索通过视图中的map / reduce查询执行:

视图根据定义的格式和结构在数据上创建索引。该视图由特定字段和从Couchbase中的对象提取的信息组成。视图在您的信息上创建索引,从而可以对数据进行搜索和选择操作。

资料来源:意见介绍

通过遍历Couchbase存储桶中的每个文档并输出指定的信息来创建视图。存储的结果索引供将来使用,并在访问视图时使用存储的新数据进行更新。该过程是渐进式的,因此对性能的持续影响很小。在现有的大型数据集上创建新视图可能需要很长时间才能建立,但是数据更新很快。

来源:Views基础知识

在此处输入图片说明

来源

最后,有关将SQL转换为映射/还原的部分可能会有所帮助:

通常,对于每个WHERE子句,您需要在生成的视图的键中包括相应的字段,然后使用键,键或startkey / endkey组合来指示要选择的数据。

总之,Couchbase视图会不断更新其索引以确保最佳查询性能。Couchbase Lite与查询类似,但是服务器的机制略有不同:

查询索引会按需更新。因此,在文档更改之后,对视图的下一个查询将导致在文档的新内容上调用该视图的map函数,从而更新视图索引。(但是请记住,您不应编写任何假设何时调用映射函数的代码。)

如何改善视图索引编制:您可以控制的主要事情是地图函数的性能,包括运行时间和分配的对象数量。尝试在视图建立索引时对应用程序进行性能分析,以查看地图功能是否花费了大量时间;如果是这样,请对其进行优化。看看是否可以使map函数短路,如果文档不是会产生任何行的类型,请尽早放弃。另请查看是否可以发出较少的数据。(如果要作为值发出整个文档,请不要。)

Couchbase Lite-视图

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

EclipseLink存储的订购实体列表不正确吗?

来自分类Dev

Scala持久键值存储?

来自分类Dev

存储未排序的键值对

来自分类Dev

在sharedpreferences中存储多个int键值时出现问题,有解决方案吗?

来自分类Dev

我可以订购readdir吗?

来自分类Dev

完成并订购范围列表吗?

来自分类Dev

订购哈希并删除第一个键值对

来自分类Dev

键值对如何存储在Redis中?

来自分类Dev

HashMap 键值存储和检索

来自分类Dev

Couchbase API 存储桶创建

来自分类Dev

Cassandra是键值存储还是宽列存储?

来自分类Dev

我可以在 Java Hash Map 中存储 50 mb 的字符串类型键值对数据吗

来自分类Dev

Couchbase N1qlQuery:使用select中的键值

来自分类Dev

可以通过某些单词订购吗?

来自分类Dev

自定义订购是Sympy吗?

来自分类Dev

如何在Couchbase中添加键值,该值是从文档中已经存在的键值派生的

来自分类Dev

G-WAN关键值存储

来自分类Dev

如何使用moneta存储嵌套的键值对

来自分类Dev

MongoDB:存储键值数据的最佳方法

来自分类Dev

在键值字段中存储JSON对象

来自分类Dev

Redis键值存储的Riak优势是什么?

来自分类Dev

如何将键值对存储在SharedPreferences中?

来自分类Dev

MongoDB:存储键值数据的最佳方法

来自分类Dev

Couchbase Memcached存储桶替代品

来自分类Dev

Couchbase Memcached存储桶替代品

来自分类Dev

批量读取Couchbase存储桶中的文档

来自分类Dev

Couchbase Lite在Windows的哪里存储其文件?

来自分类Dev

高性能持久键值存储,可存储大量记录

来自分类Dev

jQuery:从JSON获取每个键值对吗?