何時使用複合索引
複合索引,表示為索引(column_A、column_B、column_C),可增強利用複合索引的資料庫效能指定列用於連接、過濾甚至選擇資料等目的。重要的是,複合索引也有利於利用索引列最左側子集的查詢。因此,像上面所示的索引對於涉及以下內容的查詢將是有利的:
複合索引的效能注意事項
由於以下原因,使用複合索引可能會顯著影響效能因素:
使用複合索引的好處
複合索引有以下優點:
範例用例
考慮提供的home 表示例:
要確定geolat 和geolng 的複合索引是否合適,請檢查最常執行的查詢:
SELECT * FROM homes WHERE geolat BETWEEN ??? AND ??? AND geolng BETWEEN ??? AND ???
對於此查詢,(geolat, geolng) 上的複合索引將是最佳選擇,因為它直接與指定的過濾條件對齊。
EXPLAIN 的解釋輸出
分析 EXPLAIN輸出:
EXPLAIN SELECT ... WHERE homes.geolat BETWEEN -100 AND 100 AND homes.geolng BETWEEN -100 AND 100
輸出顯示 geolat 和 geolng 上的現有索引足以滿足指定的查詢。但是,如果查詢主要涉及同時對 geolat 和 geolng 進行過濾,則按照建議建立複合索引 (index(geolat_geolng)) 可以進一步提高效能。
以上是我什麼時候應該在資料庫中使用複合索引?的詳細內容。更多資訊請關注PHP中文網其他相關文章!