Musisz mieć jeden indeks w obu polach
ALTER TABLE alert_hit ADD INDEX `IDX-alert_id-timestamp` (`alert_id`, `timestamp`);
Również MySQL użyje indeksu wielokolumnowego aż do pierwszego pola, dla którego istnieje warunek zakresu w klauzuli WHERE, więc w tym przypadku kolejność ma znaczenie i timestamp
powinien być ostatni w indeksie.
Zgodnie z sugestią @spencer7593 wybierając COUNT(1)
zamiast count(id)
może być również lepszy.