Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak mogę przyspieszyć zapytanie MySQL z klauzulami WHERE w dwóch kolumnach?

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uruchamianie wielu instrukcji mysql w jednej transakcji w narzędziu migracji Mybatis

  2. MySQL obcina tekst za pomocą wielokropka

  3. Jak powiązać jedną tabelę z wieloma różnymi tabelami?

  4. PHP/mysqli:Wstawianie adresu IP za pomocą mysqli_stmt_bind_param()

  5. wyślij dane do MySQL za pomocą AJAX + jQuery + PHP