将索引与 where 和 join 子句一起使用

Posted

技术标签:

【中文标题】将索引与 where 和 join 子句一起使用【英文标题】:Using indexes with where and join clauses 【发布时间】:2016-06-19 06:42:43 【问题描述】:

在我用来学习数据库系统的讲义中,我看到了这句话。

索引中涉及的所有列都应该按照它们出现在索引中的相同顺序出现在 WHERE 和 JOIN 子句中。

我在标题 SQL 查询调优下找到了这个。 我不明白它在说什么以及为什么。 你能帮我理解这句话吗。 我在谷歌上搜索了一个不太复杂的,但很难知道如何搜索。

【问题讨论】:

【参考方案1】:

不是想变得可爱,但我认为这就是它所说的。

在 join/where 子句中列出项目时,它可以提高速度以使所有内容保持相同的顺序。执行语句时,从上到下要快得多,然后必须在语句中搜索连接/关系。这是首先使用索引的主要原因之一。

(我还不能发表评论 - 抱歉,这是在“答案”部分)

【讨论】:

以上是关于将索引与 where 和 join 子句一起使用的主要内容,如果未能解决你的问题,请参考以下文章

在 WHERE 子句中使用连接列时,Mysql 未在 LEFT JOIN 中使用索引

使用 wpdb prepare 安全地收集带有“join”的“where”子句数组

将 Haversine 公式与 Laravel eloquent 和多个 where 子句一起使用

sql语句中where后边的哪些条件会使索引失效 -- SQL语句优化

使用 JOIN 时的 WHERE 子句与 ON

将 Join 与 Where 一起使用