首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Couchbase是一个订购的键值商店吗?

Couchbase是一个订购的键值商店吗?
EN

Stack Overflow用户
提问于 2015-02-08 18:23:47
回答 1查看 565关注 0票数 1

文档是否按密钥顺序存储在Couchbase中?换句话说,它们是否允许高效的查询,以检索所有密钥在某个范围内的文档?特别是,我需要知道这是否适用于Couchbase lite。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-08 19:00:00

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

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

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

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

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

来源:视图介绍

视图是通过迭代Couchbase桶中的每个文档并输出指定的信息来创建的。生成的索引存储以供以后使用,并在访问视图时使用存储的新数据进行更新。这一过程是渐进的,因此对业绩的持续影响很小。在现有的大型数据集上创建新视图可能需要很长时间,但对数据的更新非常迅速。

来源:视图基础

来源

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

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

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

查询时会根据需要更新视图索引。因此,在文档更改后,下一个对视图的查询将导致对文档的新内容调用该视图的map函数,更新视图索引。(但请记住,您不应该编写任何假设何时调用map函数的代码。) 如何改进视图索引:您可以控制的主要事情是映射函数的性能,无论运行多长时间和分配多少对象。尝试分析您的应用程序时,视图是索引,看看是否花了很多时间在地图功能;如果是,优化它。看看你是否可以短路映射函数,如果文档不是一种会产生任何行的类型,就提前放弃。还可以查看是否可以发出更少的数据。(如果要以值的形式释放整个文档,请不要。)

来自Couchbase Lite - View

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28397652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档