Couchbase索引中存储了哪些数据



情况

我使用的是一个Couchbase数据库,它经常遇到OOM问题,很多时候都是由于索引服务内存不足。当我启动Couchbase面板以获取更多信息时,我可以看到索引foobarX个项目占用Y个内存

问题

有没有一种方法可以查看存储在索引服务中的数据?它是新列表中文档的克隆吗?是指针过滤器+foo文档的引用列表吗?什么是";项目";?

我梳理了一下医生,我最接近的一次是在这里,他们谈论";项目";在仪表板表中,但它们实际上并没有定义实际是什么。

使用Node.js包沙发床:";2.6.12">

是否有查看存储在索引服务中的数据的方法

是的,您可以使用Couchbasebin目录中的一个转储实用程序。。例如,plasma_dump工具用于从Couchbase Server Enterprise Edition 7.x上的索引中提取数据。

下面是一个示例,从内置旅行样本数据库加载到Linux集群时创建的索引中提取索引数据。

/opt/couchbase/bin/plasma_dump dump /opt/couchbase/var/lib/couchbase/data/@2i/travel-sample_def_airportname_4970026472206047478_0.index/mainIndex/

{"k":Raleigh Durham Intlairport_3626
","v":""},
{"k":Ralph Wien Memairport_3693
","v":""},
{"k":Ramona Airportairport_8608
","v":""},
{"k":Rampart Airportairport_7112
","v":""},
{"k":Rancho Murietaairport_3643
","v":""},
{"k":Rancho San Simeon Airportairport_9104
","v":""},
{"k":Randall Airportairport_8531
","v":""},
{"k":Randolph Afbairport_3757
","v":""},
{"k":Rapid City Regional Airportairport_4087
","v":""},
{"k":Rawlins Municipal Airport-Harvey Fieldairport_7986
","v":""},
{"k":Reading Regional Carl A Spaatz Fieldairport_5764
","v":""},
{"k":Red Bluff Municipal Airportairport_8137.....

它是新列表中文档的克隆吗?是指针过滤器+foo文档的引用列表吗?什么是";项目">

正如您所看到的,每个索引项都是索引定义所定义的实际字段的键和值。它不是指针。

实际上,这就是在数据库中使用索引的方式,以便加快查询速度。您通常希望在索引中包括文档字段以满足查询,但排除不需要的字段以减小索引的大小。

在数据库术语中,覆盖索引是指包含满足查询所需的所有字段的索引,因此数据库引擎不需要从数据服务中查找实际数据字段。这可以提高数据库的性能,因为在索引中查找数据通常比从数据服务收集所有原始数据更快。

为了成为覆盖索引,索引必须包括满足查询所需的所有字段。如果查询需要未包含在索引中的字段,则数据库引擎将不得不查找存储桶中的实际数据以检索必要的数据。这可能会降低使用索引的性能优势。

谢谢,Ian McCloy(沙发座产品经理)

最新更新