如何让 mysql 查询使用特定索引?

How to get a mysql query to use a specific index?

SELECT * FROM orders WITH (INDEX(idx));

当我触发上述查询时出现错误

mysql #1064 - You have an error in your SQL syntax

我创建了如下索引

create index idx on orders(date,status);

谁能告诉我正确的语法?

如果索引合适,将在不明确指定的情况下使用它。

鉴于您正在使用 SELECT * 我不希望使用您的索引(即使 INDEX 提示具有正确的语法)。选择取决于查询优化器的启发式方法。

正确的语法是:

SELECT * FROM orders USE INDEX(idx);

参考:Index Hints

另外,请注意:100 次中有 99 次,不应指定索引提示。让优化器完成它的工作。