indexing - Couchbase - 什么是异步索引?

标签 indexing couchbase

我正在 this site 上阅读 Couchbase并遇到了。我对索引有较高的理解,但仅此而已。第二行同样难以理解。

主索引与 Couchbase 中的所有其他索引一样,都是异步维护的。您可以通过设置查询的一致性级别来设置数据的新近度

最佳答案

这意味着当文档存储在Couchbase中时,它会被放入队列中以进行索引。写入操作不会等待索引完成。想象一下您的应用程序的情况:

  1. 写入一些文档 A,例如 {'type': 'invoice', 'foo':'bar', ... 等等 ... }
  2. 立即执行 N1QL 查询SELECT * FROM mybucket WHERE type = 'invoice'

过于简单化的解释:文档 A 将在步骤 1 后排队等待索引。在步骤 2 中,N1QL 是 NotBounded(默认情况下 SDK/Server 将是 NotBounded),并且可能不会返回文档 A,因为它还没有被索引。尚未。如果您的情况需要,您可以指定 RequestPlus(或 AtPlus)而不是 NotBounded。这将使您的查询在执行查询之前等待索引完成。

使用 RequestPlus 的 C# 示例:

var request = QueryRequest.Create("SELECT * FROM mybucket WHERE type = 'invoice'");
request.ScanConsistency(ScanConsistency.RequestPlus);

但这确实会对性能产生影响! RequestPlus 将是最差的性能,NonBounded 将是最好的,AtPlus 将处于中间位置。

请注意,如果您使用键/值访问而不是 N1QL,则不必担心这一点。无论索引如何,您始终能够通过文档的键直接访问文档。

了解更多信息:

关于indexing - Couchbase - 什么是异步索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54310423/

相关文章:

sql - 索引列,多列编号的SQL查询速度慢

r - R 中的基于零的数组/向量

sql-update - 使用 N1ql 更新/替换数组元素并匹配三个条件

docker - couchbase docker端口8091有301重定向

php - 有没有办法跟踪通过 sdk 发送到 couchbase 服务器的请求

database-design - Redis中最快的伪索引是什么?

performance - 提高 MATLAB 逻辑索引性能

indexing - 在 RavenDB 中查询嵌套字典

generics - 返回SELF的java类的对象实例化在kotlin中不起作用

arrays - 使用 Node js 将嵌套的 json 值推送到数组