MongoDB查詢優化:索引如何提升查詢效率?
MongoDB的索引是查詢優化核心,用於解決數據量大時全表掃描導致的查詢慢問題。其本質是字段值與文檔位置的映射結構(類似目錄),將查詢從O(n)的全表掃描轉爲O(log n)的快速定位,大幅提升效率。 創建索引用`createIndex({字段: 排序方式})`,如`db.students.createIndex({age: 1})`。常見類型包括單字段、複合(多字段組合,順序依查詢頻率調整)、唯一(確保字段唯一)、文本索引(支持模糊搜索)。 驗證索引是否生效可通過`explain("executionStats")`查看執行計劃,關注`executionTimeMillis`(耗時)和`totalDocsExamined`(檢查文檔數),若後者等於結果數則索引生效。 需注意:索引非越多越好,過度創建會佔用空間並拖慢寫操作。應優先爲頻繁查詢字段建索引,避免對低查詢率或高重複字段建索引。合理使用索引可讓MongoDB在數據增長時保持高效響應。
閱讀全文學會MongoDB索引:讓你的查詢速度提升10倍
MongoDB索引用於提升查詢性能,解決無索引時“全表掃描”(時間複雜度O(n))的低效問題,有索引後複雜度降爲O(log n),如同圖書館目錄定位書籍。索引是存儲字段值與文檔位置映射的特殊數據結構(基於B樹/B+樹)。 基本類型:單字段索引(最常用,如`db.users.createIndex({age:1})`);複合索引(多字段,如`{age:1, gender:1}`,需遵循“最左前綴原則”);還有多鍵、地理空間、文本索引等進階類型。 創建用`createIndex()`,驗證用`explain()`查看執行計劃。建議在頻繁查詢、排序或複合查詢字段建索引,數據量小、寫入極頻繁、低基數或重複率高字段則不宜建。注意避免過度索引、重複索引,用`explain`驗證是否生效,防止字段類型不匹配導致索引失效。
閱讀全文