我一直在研究Couchbase从4.0开始的Global Secondary Index功能,现在已改进为在5.0中具有自动重新平衡功能
在下面提到的视频中,与通常存储在Map Reduce视图中的普通二级索引相比,GSI有多个优点。 GSI是基于节点的,而Map Reduce视图是本地的和基于分区的。
听起来GSI是所有索引解决方案的灵丹妙药。 Map Reduce Views的一些显着优点是:
*对于高数据操作的db更好-但是GSI可以推迟索引的构建,从而减轻了问题,而且与插入相比,我倾向于看到查询变得更加复杂并且花费更多的时间。
*可以将javascript用于索引逻辑-我认为这仅适用于极少数情况。
那么,如果GSI这么好,它将成为默认索引吗?
我忍不住认为小型数据库(即小于1GB)不需要GSI。听起来太复杂了。
我缺少什么,这是使人们选择普通索引还是GSI的关键点吗?
参考文献:
GSI的视频-https://www.youtube.com/watch?v=WvjYKO27Vdk
5.0版中的自动重新平衡-https://blog.couchbase.com/gsi-replicas-rebalancing/
GSI信息-
https://developer.couchbase.com/documentation/server/current/architecture/global-secondary-indexes.html
最佳答案
在某些情况下,最好使用MapReduced视图。
有关详细信息,请参见此Couchbase forum post:
对于以下情况,将继续推荐视图:
在查询中使用Javascript逻辑
执行汇总(减少),实现结果,然后在修改源数据时逐步保持结果。
(2)对于性能很重要,因为合计结果基本上是预先计算的。