在沙发底座上有效创建索引

问题描述 投票:0回答:1

我有一个庞大的数据库,用户可以在其中使用多个过滤器进行查询。我大约有10个过滤器可供用户使用,并且可以应用多个过滤器。什么是基于此过滤器创建索引的有效方法?我要为所有可能的组合创建索引吗?如果我走这条路,创建太多索引可能会有什么影响?

indexing couchbase
1个回答
2
投票

在您不了解系统的情况下,这是一个很难回答的问题。这是我的建议:

1] Couchbase 6.5具有索引推荐器,将其安装在您的计算机上并在该计算机上运行最常见的查询。它将为您提供正确的索引。

[2)获得所有索引建议后,请尝试将它们与相同的文档类型结合在一起]

[3)每种文档类型至少应有一个索引

[4)从生产环境中删除主索引(一旦每种文档类型已经有至少一个索引)

5)排序是一项昂贵的操作,请考虑将数据存储在已排序的索引中:

CREATE INDEX `us_users_sorted` ON
`user_profile`(
`countryCode`,
`firstName` DESC,
`lastName` DESC)
WHERE (((`type` = "user")
and (`enabled` = true))
and (`countryCode` = "US"))

[6)尽可能避免select *并使用部分索引和覆盖索引

[7)如果文档的字段太多而无法索引,请考虑使用自适应索引

创建过多索引的副作用自然是在磁盘,cpu和内存中占用了更多空间。但是,这取决于您的数据和群集的大小。

如果您的集群具有> = 5个节点,则您可能还考虑拆分索引并从数据节点查询。

© www.soinside.com 2019 - 2024. All rights reserved.