sql >> Databáze >  >> RDS >> Mysql

Jak mohu urychlit dotaz MySQL pomocí klauzulí WHERE ve dvou sloupcích?

Musíte mít jeden index na obou polích

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

Také MySQL použije index s více sloupci až do prvního pole, pro které je v klauzuli WHERE podmínka rozsahu, takže v tomto případě záleží na pořadí a timestamp by měl být poslední v indexu.

Jak navrhuje @spencer7593 výběrem COUNT(1) místo count(id) může být také lepší.




  1. Více databází v dockeru a docker-compose

  2. SQL Server Query:Rychlý s doslovným, ale pomalý s proměnným

  3. Funkce TO_DSINTERVAL() v Oracle

  4. postgreSQL - in vs