MongoDB索引类型:单字段、复合索引怎么建?
MongoDB索引是加速查询的工具,类似书籍目录,避免全表扫描。单字段索引针对单个字段,适用于单字段过滤或排序,语法为`db.集合名.createIndex({字段名: 1})`(1升序,-1降序),仅优化含该字段的查询。复合索引针对多字段,遵循“左前缀原则”,仅含最左侧字段的查询可用,如`{region:1, reg_time:-1}`仅优化`find({region: x})`或`find({region:x, reg_time: y})`的查询。需注意:索引非越多越好,避免重复、低选择性字段(如性别)及非高频查询建索引,应按需适度建立,合理规划才能提升查询效率而不影响写入。
阅读全文MongoDB查询优化:索引如何提升查询效率?
MongoDB的索引是查询优化核心,用于解决数据量大时全表扫描导致的查询慢问题。其本质是字段值与文档位置的映射结构(类似目录),将查询从O(n)的全表扫描转为O(log n)的快速定位,大幅提升效率。 创建索引用`createIndex({字段: 排序方式})`,如`db.students.createIndex({age: 1})`。常见类型包括单字段、复合(多字段组合,顺序依查询频率调整)、唯一(确保字段唯一)、文本索引(支持模糊搜索)。 验证索引是否生效可通过`explain("executionStats")`查看执行计划,关注`executionTimeMillis`(耗时)和`totalDocsExamined`(检查文档数),若后者等于结果数则索引生效。 需注意:索引非越多越好,过度创建会占用空间并拖慢写操作。应优先为频繁查询字段建索引,避免对低查询率或高重复字段建索引。合理使用索引可让MongoDB在数据增长时保持高效响应。
阅读全文