面试题答案
一键面试-
创建复合索引: 在MongoDB中,可以使用以下代码创建复合索引:
db.collection_name.createIndex({field1: 1, field2: 1});
这里的
1
表示升序索引,如果需要降序索引,可以使用-1
。 -
索引顺序的重要性:
- 复合索引的顺序非常重要,因为MongoDB会按照索引定义的顺序来使用索引。对于查询条件
field1 = value1
且field2 > value2
,将field1
放在索引的第一个位置,field2
放在第二个位置,是因为MongoDB首先会利用field1
进行精确匹配,缩小查询范围,然后在这个缩小的范围内再利用field2
进行范围查询。
- 复合索引的顺序非常重要,因为MongoDB会按照索引定义的顺序来使用索引。对于查询条件
-
索引顺序不合理的影响:
- 如果索引顺序是
{field2: 1, field1: 1}
,当执行field1 = value1
且field2 > value2
的查询时,MongoDB无法有效地利用这个索引。因为索引是先按field2
排序,而查询首先需要精确匹配field1
,所以这个索引对于此查询基本无效,查询性能会显著下降,可能导致全表扫描,大大增加查询的时间和资源消耗。
- 如果索引顺序是