sql >> Database >  >> RDS >> Mysql

Hoe kan ik een MySQL-query versnellen met WHERE-clausules op twee kolommen?

U moet op beide velden één index hebben

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

Ook zal MySQL de index met meerdere kolommen gebruiken tot aan het eerste veld waarvoor er een bereikvoorwaarde is in de WHERE-component, dus in dit geval is de volgorde van belang en timestamp zou als laatste in de index moeten staan.

Zoals voorgesteld door @spencer7593 door COUNT(1) te selecteren in plaats van count(id) misschien ook beter.




  1. maak alle auto-increment integers hetzelfde aantal cijfers met voorloopnullen

  2. Verschil in minuten van twee tijdvelden in MySQL

  3. MySQL telt alle kinderen, ongeacht hoeveel er zijn

  4. gegevens migreren van MS SQL naar PostgreSQL?