Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich eine MySQL-Abfrage mit WHERE-Klauseln für zwei Spalten beschleunigen?

Sie müssen einen Index für beide Felder haben

ALTER TABLE alert_hit ADD INDEX `IDX-alert_id-timestamp` (`alert_id`, `timestamp`);

Auch MySQL verwendet den mehrspaltigen Index bis zum ersten Feld, für das es eine Bereichsbedingung in der WHERE-Klausel gibt, also spielt in diesem Fall die Reihenfolge und timestamp eine Rolle sollte an letzter Stelle im Index stehen.

Wie von @spencer7593 vorgeschlagen, indem Sie COUNT(1) auswählen statt count(id) könnte auch besser sein.