Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como posso acelerar uma consulta MySQL com cláusulas WHERE em duas colunas?


Você precisa ter um índice em ambos os campos
ALTER TABLE alert_hit ADD INDEX `IDX-alert_id-timestamp` (`alert_id`, `timestamp`);

Além disso, o MySQL usará o índice de várias colunas até o primeiro campo para o qual há uma condição de intervalo na cláusula WHERE, portanto, neste caso, a ordem importa e o timestamp deve ser o último no índice.

Conforme sugerido por @spencer7593 selecionando COUNT(1) em vez de count(id) também pode ser melhor.