FORCE INDEX,IGNORE INDEX的优化程序提示。 MySQL 8.0引入了索引级优化器提示,这些提示与第8.9.4节”索引提示”中所述的传统索引提示类似。新的提示这里列出,与他们一起
FORCE INDEX或IGNORE INDEX等价物:GROUP_INDEX: 相当于FORCE INDEX FOR GROUP BYNO_GROUP_INDEX: 相当于IGNORE INDEX FOR GROUP BYJOIN_INDEX: 相当于FORCE INDEX FOR JOINNO_JOIN_INDEX: 相当于IGNORE INDEX FOR JOINORDER_INDEX: 相当于FORCE INDEX FOR ORDER BYNO_ORDER_INDEX: 相当于IGNORE INDEX FOR ORDER BYINDEX:与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达到同样的效果。有关更多信息和使用示例,请参见 索引级优化器提示。