我正在mongodb中创建一个集合,它将包含1Tera的实体。目前,对该集合的查询需要5个复合索引。
我知道不建议使用太多索引,但是此集合有一些必须建立索引的频繁查询。
在一种情况下,我正在考虑如何对数据和索引进行建模:
在文件中可以有两种类型的父母。 PARENTA和PARENTB。查询分别针对每种类型。
我有两个选择:
1.为2种父类型保存2个字段,并为每个字段都有一个索引
{
parentsA: ['parentA1', 'parentA2']
parentsB: ['parentB1]
}
{
parents: [
{parentType: 'PARENTA', parentId: 'parentA1'},
{parentType: 'PARENTA', parentId: 'parentA2'},
{parentType: 'PARENTB', parentId: 'parentB1'}
]
}
,然后当我过滤时,我还要添加类型(PARENTA / PARENTB)。
因为我需要1索引而不是2,解决方案2效率更高吗? (考虑到我已经有5个其他复合索引了。)
答案 0 :(得分:0)
2个索引超过1个几乎可以忽略不计。出于其他原因,更好的建模无疑将是第二个建模,例如: