gpt4 book ai didi

mysql - 在 WHERE 或 GROUP BY 中使用 9 列进行 SELECT。对于几乎每个排列,是否有比复合索引更好的方法来索引多列?

转载 作者:行者123 更新时间:2023-11-29 09:24:19 24 4
gpt4 key购买 nike

我在一个包含 5 亿行的表中有 9 列,我将在其中执行 SELECT 查询,并且所有列可能位于也可能不位于 WHERE 或 GROUP BY 中。

例如:列 -> (A、B、C、D、E、F、I、J、K)查询 ->

SELECT * 
FROM table WHERE A = 'x' AND J = 'y' GROUP BY B, E, K

索引和优化数据库的最佳方法是什么?我是否必须为每个列排列创建多列索引(复合索引)?

对于 3 列,我知道我可以这样做:(a,b,c),(b,c),(c),(a,c)但是 9 列呢?

最佳答案

你无法达到预期的目标。一些可能的替代方案:

  • 发现哪些列最常用;然后创建最多 10 个索引,每个索引最多 3 列。如果您帮助最常见的组合,那么它可能“足够好”。

  • 通过“列存储”研究 MariaDB。

  • 查看插件包。

关于mysql - 在 WHERE 或 GROUP BY 中使用 9 列进行 SELECT。对于几乎每个排列,是否有比复合索引更好的方法来索引多列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59865554/

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