gpt4 book ai didi

mysql - 找到多列索引的最佳顺序

转载 作者:行者123 更新时间:2023-11-29 01:07:18 25 4
gpt4 key购买 nike

假设我有一个包含两个索引的表 - 一个在 a 列上,一个在 a、b 和 c 列上。

我注意到,根据索引定义中列的顺序,MySQL 可能最终使用单列索引而不是多列索引,即使多列索引中的所有三列都被引用在 JOIN 的 ON 部分。

这有点回避问题……如何确定列的理想顺序?您只需要暴力破解吗?

最佳答案

索引中列的顺序并非无关紧要。有一个方法。

  • 首先,相等项中涉及的一个或多个列与 AND 组合。

    WHERE a = 1 AND b = 2
  • 其次,范围 项中涉及的单个列。要么,要么一个或多个列参与排序。

    WHERE a = 1 AND b = 2 AND c > 3

    WHERE a = 1 AND b = 2
    ORDER BY c, d
  • 第三,在选择列表中引用但未通过搜索或排序引用的列。

    SELECT x, y, z
    . . .
    WHERE a = 1 AND b = 2 AND c > 3

这将在 (a, b, c, x, y, z) 上生成索引。

我在我的演讲中对此进行了更详细的解释 How to Design Indexes, Really .

关于mysql - 找到多列索引的最佳顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19438065/

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