Mysql
 sql >> Database >  >> RDS >> Mysql

Come posso velocizzare una query MySQL con le clausole WHERE su due colonne?

Devi avere un indice su entrambi i campi

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

Anche MySQL utilizzerà l'indice multi colonna fino al primo campo per il quale è presente una condizione di intervallo nella clausola WHERE, quindi in questo caso l'ordine è importante e timestamp dovrebbe essere l'ultimo nell'indice.

Come suggerito da @spencer7593 selezionando COUNT(1) invece di count(id) potrebbe anche essere migliore.