MongoDB:双字段索引与文档字段索引

And*_*rey 6 indexing performance mongodb

我需要通过两个字段(唯一索引)索引集合,比如field1和field2.在性能方面有什么更好的方法:

  1. 创建常规的双列索引

    -要么 -

  2. 将这两个字段合并到一个文档字段{field1:value,field2:value2}并索引该字段?

注意:我将始终一起查询这两个字段.

Bry*_*yan 3

您可以将列分开并创建单个索引,这将提高同时查询两个字段时的性能。

db.things.ensureIndex({field1:1, field2:1});
Run Code Online (Sandbox Code Playgroud)

http://www.mongodb.org/display/DOCS/Indexes#Indexes-CompoundKeysIndexes

将这些列放在同一列中不会提高性能,因为您必须以相同的方式对它们进行索引:

db.things.ensureIndex({fields.field1:1, fields.field2:1});
Run Code Online (Sandbox Code Playgroud)

http://www.mongodb.org/display/DOCS/Indexes#Indexes-EmbeddedKeys

或者您可以索引整个文档

db.things.ensureIndex({fields: 1});
Run Code Online (Sandbox Code Playgroud)

http://www.mongodb.org/display/DOCS/Indexes#Indexes-DocumentsasKeys

性能可能会有所提高,但幅度可能会很大。使用测试数据库,创建测试数据并对一些测试进行基准测试以找出答案。我们很想听听您的结果。