数据库
首页 > 数据库> > mysql – 在group by子句中使用的列上添加索引是否合适?

mysql – 在group by子句中使用的列上添加索引是否合适?

作者:互联网

我有一个像以下的查询 –

select x, sum(y) from xyz where z>=100 group by x order by sum(y) desc;

如果我要在x上添加索引会更快吗?

解决方法:

在X上添加一个索引会在这里改善你的性能,理想情况下你需要X和Z的复合键,因为你想对Z超过100分的所有事物的每个X进行分析,这样索引才能真正实现有效你需要两者.

然而,此时您正在为特定查询构建索引,因此插入/更新/删除/重新索引/存储空间的额外处理对于一个查询都是值得的(如果它将被反复使用的东西)在其他位置,它可能是,它也可能在您已有的不同查询中有用)

根据表结构和内容的其余部分,您可以将聚簇键作为X,Z,这样就可以完成工作.如果您有列a,b,c,d,e,f,g,其中a是您聚类的标识字段,那么这作为辅助索引会有所帮助.

然而,最终我找到了唯一的方法来了解索引是否会有所帮助,就是测试它.世界上最好的意志不能确保每个特定的索引都有助于整个系统只有测试可以做到这一点.

标签:mysql,group-by,optimization,index-tuning,index
来源: https://codeday.me/bug/20190806/1598777.html