J'ai une table PAIEMENTS dans la base de données MySql:MySQL: Optimisation GROUP BY plusieurs clés
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;
Je veux obtenir quantité de synthèse pour chaque utilisateur dans la catégorie ech. Voici le script:
select sum(AMOUNT), USER_ID, CATEGORY_ID
from PAYMENTS
group by USER_ID, CATEGORY_ID;
commande EXPLIQUEZ de MySql montre supplémentaire: "L'utilisation temporaire L'utilisation filesort"
Comment débarrasser de l'utilisation & temporaire filesort?
Merci! J'ai changé l'ordre des champs dans l'index et cela fonctionne sans Extras maintenant! – semitkin
@VoteyDisciple - En supposant qu'il n'y ait pas de "PAYMENT_INDEX3", pouvons-nous utiliser des index individuels dans la clause group by? – Umer