gpt4 book ai didi

MySQL:优化 GROUP BY 多个键

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

我在 MySql 数据库中有一个 PAYMENTS 表:

CREATE TABLE `PAYMENTS` (
`ID` BIGINT(20) NOT NULL AUTO_INCREMENT,
`USER_ID` BIGINT(20) NOT NULL,
`CATEGORY_ID` BIGINT(20) NOT NULL,
`AMOUNT` DOUBLE NULL DEFAULT NULL,
PRIMARY KEY (`ID`),
INDEX `PAYMENT_INDEX1` (`USER_ID`),
INDEX `PAYMENT_INDEX2` (`CATEGORY_ID`),
INDEX `PAYMENT_INDEX3` (`CATEGORY_ID`, `USER_ID`)
) ENGINE=InnoDB;

我想获取 ech 类别中每个用户的摘要金额。这是脚本:

select sum(AMOUNT), USER_ID, CATEGORY_ID
from PAYMENTS
group by USER_ID, CATEGORY_ID;

MySql 的 EXPLAIN 命令显示额外:“使用临时;使用文件排序”

如何摆脱使用临时和文件排序?

最佳答案

您在 (CATEGORY_ID, USER_ID) 上有索引,但您按 USER_ID, CATEGORY_ID 进行分组。

顺序很重要! 创建一个涵盖您实际使用的 GROUP BY 子句的索引 - 字段的顺序相同。

关于MySQL:优化 GROUP BY 多个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3915574/

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