创建复合索引
这将创建两个键 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 索引非常有效地处理范围,但前提是查询范围的列是复合索引中的最后一列。