创建复合索引

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