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在數據增長時保持高效響應。
閱讀全文