gpt4 book ai didi

Mysql:多列索引,多列索引的顺序重要吗?

转载 作者:可可西里 更新时间:2023-11-01 08:29:16 24 4
gpt4 key购买 nike

我正在尝试理解多列索引。

问题是:多列索引的顺序重要吗?

我有一个包含 A、B、C 和 D 列的表格。

我执行一个查询:

SELECT A FROM table WHERE D='2' AND B='1' AND C='0' ;

如果我只创建一个多列索引,速度会有差异吗:

  • 乙、丙、丁
  • D、B、C

或者多列索引的顺序无关紧要?

补充问题:

如果我执行以下查询,它是否仍然受益于多列索引?

SELECT A, B FROM tablename WHERE D='2' AND C='0';

为什么(不)?

最佳答案

多列索引的顺序无关紧要。换句话说,以下两个查询是相同的:

SELECT A FROM table WHERE D='2' AND B='1' AND C='0';
SELECT A FROM table WHERE B='1' AND D='2' AND C='0';

您的最后一个查询对 D 使用索引 [D, B, C] 而不是 C 因为 B 没有在 哪里:

SELECT A, B FROM tablename WHERE D='2' AND C='0';

这是因为未使用索引的第一部分(B 列)。您可以在 MySQL manual 中找到更多详细信息:

MySQL can use multiple-column indexes for queries that test all the columns in the index, or queries that test just the first column, the first two columns, the first three columns, and so on.

关于Mysql:多列索引,多列索引的顺序重要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31429358/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com