建立複合索引
這將建立兩個鍵 mystring
和 mydatetime
的複合索引,並使用 WHERE
子句中的兩列加速查詢。
CREATE INDEX idx_mycol_myothercol ON my_table(mycol, myothercol)
注意: 訂單很重要! 如果搜尋查詢不包含 WHERE
子句中的兩個列,則它只能使用最左邊的索引。在這種情況下,在 WHERE
中使用 mycol
的查詢將使用索引,搜尋 myothercol
而不搜尋 mycol
的查詢將不會。有關更多資訊,請檢視此部落格文章 。
注意: 由於 BTREE 的工作方式,通常在範圍內查詢的列應該是最右邊的值。例如,DATETIME
列通常像 WHERE datecol > '2016-01-01 00:00:00'
一樣被查詢。BTREE 索引非常有效地處理範圍,但前提是查詢範圍的列是複合索引中的最後一列。