在 MySQL 中强制使用索引进行连接的语法是啥
Posted
技术标签:
【中文标题】在 MySQL 中强制使用索引进行连接的语法是啥【英文标题】:What is the syntax to force the use of an index for a join in MySQL在 MySQL 中强制使用索引进行连接的语法是什么 【发布时间】:2010-11-19 08:00:43 【问题描述】:在进行直接选择时使用“FORCE/USE/IGNORE INDEX”已有详细记录,但从文档中不清楚如何为 JOIN 执行此操作。
如何强制将特定索引用于连接表?
【问题讨论】:
您是否刚刚提出问题并在 1 分钟后以第二人称回答? (我知道,我知道现在已经 6 年了,我只是好奇) @karatedog:是的,我花了很长时间试图找到答案,所以想在某个地方记录下来。认为在这里会有所帮助。 【参考方案1】:FORCE/USE/IGNORE 位于您要加入的表名之后,如果您使用的是别名,则位于别名之后。
SELECT
t1.`id` AS `id_1`,
t2.`id` AS `id_2`
FROM
`table1` t1
LEFT OUTER JOIN
`table2` t2
FORCE INDEX FOR JOIN (`table1_id`)
ON (t2.`table1_id` = t1.`id`)
【讨论】:
怎么样 SELECT t1.id
AS id_1
, t2.id
AS id_2
FROM table1
t1 LEFT JOIN table2
t2 GROUP BY 并强制使用组索引?
文档(现在更容易找到)在显示所有可用选项方面做得非常好:dev.mysql.com/doc/refman/5.6/en/index-hints.html以上是关于在 MySQL 中强制使用索引进行连接的语法是啥的主要内容,如果未能解决你的问题,请参考以下文章