Ich habe eine MySQL-Tabelle wie folgt aus:MySQL - wie SELECT SUM zu beschleunigen
CREATE TABLE `goods_flow` (
`cycle_id` int(11) NOT NULL,
`subject_id` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
`origin_id` int(11) NOT NULL,
`flow_value` int(11) NOT NULL,
PRIMARY KEY (`cycle_id`,`origin_id`,`subject_id`),
KEY `fk_goods_flow_subjects` (`subject_id`),
KEY `fk_goods_flow_origins` (`origin_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
und die Anwendung verwendet oft diese Abfrage:
SELECT SUM(flow_value) AS 'amount_of_goods' FROM goods_flow WHERE subject_id = 'xyz';
das eine lange Zeit in Anspruch nimmt.
Wie könnte ich die Abfrageausführung beschleunigen? Danke
(1) Was ist "lange Zeit"? (2) bitte fügen Sie den Ausführungsplan bei –
Damit eine solche einfache Abfrage langsam ist, bedeutet sie nur, dass sie einen vollständigen Tabellenscan durchführt. Das erste, was mir in den Sinn kommt, ist, einen nicht eindeutigen Index auf subject_id zu setzen. – LukStorms
@DuduMarkovitz: lange Zeit ist etwa 0,5 s, das ist einer der höchsten Werte in meinem SQL-Abfragen-Protokoll. –