2
我在MySQL数据库中的表付款:MySQL的:优化GROUP BY多个按键
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命令显示了额外的:“使用临时;使用文件排序”
如何摆脱使用临时&文件排序的?
谢谢!我已经改变了索引中字段的顺序,它现在不需要额外的工作! – semitkin 2010-10-12 14:11:44
@VoteyDisciple - 假设没有“PAYMENT_INDEX3”,我们可以在group by子句中使用单独的索引吗? – Umer 2015-10-13 07:21:28