sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag snabba upp en MySQL-fråga med WHERE-satser i två kolumner?

Du måste ha ett index på båda fälten

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

MySQL kommer också att använda indexet med flera kolumner upp till det första fältet för vilket det finns ett intervallvillkor i WHERE-satsen, så i det här fallet spelar ordningen roll och timestamp bör vara sist i indexet.

Som föreslagits av @spencer7593 genom att välja COUNT(1) istället för count(id) kan också vara bättre.




  1. Vad är skillnaden mellan paketet com.mysql.jdbc.PreparedStatement; och java.sql.PreparedStatement?

  2. MySQL Syntax felmeddelande Operand bör innehålla 1 kolumn(er)

  3. För många anslutningar med Hibernate och mysql

  4. hur man förhindrar att databasen lägger till snedstreck till citattecken