FORCE INDEX,IGNORE INDEX的优化程序提示。 MySQL 8.0引入了索引级优化器提示,这些提示与第8.9.4节”索引提示”中所述的传统索引提示类似。新的提示这里列出,与他们一起
FORCE INDEX
或IGNORE INDEX
等价物:GROUP_INDEX
: 相当于FORCE INDEX FOR GROUP BY
NO_GROUP_INDEX
: 相当于IGNORE INDEX FOR GROUP BY
JOIN_INDEX
: 相当于FORCE INDEX FOR JOIN
NO_JOIN_INDEX
: 相当于IGNORE INDEX FOR JOIN
ORDER_INDEX
: 相当于FORCE INDEX FOR ORDER BY
NO_ORDER_INDEX
: 相当于IGNORE INDEX FOR ORDER BY
INDEX
:与GROUP_INDEX
加JOIN_INDEX
号 相同ORDER_INDEX
; 等同于FORCE INDEX
没有修饰符NO_INDEX
:与NO_GROUP_INDEX
加NO_JOIN_INDEX
号 相同NO_ORDER_INDEX
; 等同于IGNORE INDEX
没有修饰符
例如,以下两个查询是等效的:
SELECT a FROM t1 FORCE INDEX (i_a) FOR JOIN WHERE a=1 AND b=2;
SELECT /*+ JOIN_INDEX(t1 i_a) */ a FROM t1 WHERE a=1 AND b=2;前面列出的优化器提示在语法和用法上与现有索引级优化器提示遵循相同的基本规则。
这些优化器提示旨在替换
FORCE INDEX
和IGNORE INDEX
,我们计划在将来的MySQL版本中弃用和,然后从MySQL中删除。他们没有实现的单个精确等效项USE INDEX
;相反,你可以使用一个或多个NO_INDEX
,NO_JOIN_INDEX
,NO_GROUP_INDEX
,或NO_ORDER_INDEX
达到同样的效果。有关更多信息和使用示例,请参见 索引级优化器提示。