Ich habe eine Tabelle wie in unten Schema, die etwa 100.000 Datensätze haben.mysql nehmen lange Zeit, um sum()
CREATE TABLE IF NOT EXISTS `order_items` (
`order_item_id` int(1) unsigned NOT NULL AUTO_INCREMENT,
`item_id` int(1) unsigned DEFAULT '0',
`final_amt` double NOT NULL DEFAULT '0',
PRIMARY KEY (`order_item_id`),
KEY `item_id` (`item_id`),
KEY `final_amt` (`final_amt`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;
(Bitte beachten Sie, dass es einige andere Felder und Indizes auch.)
Wenn ich die unten Abfrage ausführen, ist es etwa 10 stattfindet - 20 Sekunden.
SELECT item_id, SUM(final_amt) AS tot_final_amt
FROM `order_items`
GROUP BY item_id;
(Es gibt etwa 350 verschiedene item_id Werte.)
Wie mein Ergebnis schneller machen?
@ 1000111, KEY item_id (item_id), ist das kein Index für die Spalte item_id? – asankasri
Entschuldigung, das habe ich verpasst. Bitte teilen Sie das 'Explain'-Ergebnis Ihrer Anfrage mit. – 1000111