And*_*rey 6 indexing performance mongodb
我需要通过两个字段(唯一索引)索引集合,比如field1和field2.在性能方面有什么更好的方法:
创建常规的双列索引
-要么 -
将这两个字段合并到一个文档字段{field1:value,field2:value2}并索引该字段?
注意:我将始终一起查询这两个字段.
您可以将列分开并创建单个索引,这将提高同时查询两个字段时的性能。
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
性能可能会有所提高,但幅度可能会很大。使用测试数据库,创建测试数据并对一些测试进行基准测试以找出答案。我们很想听听您的结果。