sql >> Database >  >> RDS >> Mysql

MySQL-prestaties van query die kolommen toevoegen in where-clausule

@e4c5 heeft gelijk dat geen van de indices helpt bij de huidige vraag. U kunt beginnen met het toevoegen van de volgende indices en de zoekopdracht wijzigen met aanvullende voorwaarden zodat de indices worden gebruikt:

ALTER TABLE myTable
ADD INDEX(categoryId, value1),
ADD INDEX(categoryId, value2),
ADD INDEX(categoryId, value3),
ADD INDEX(categoryId, value4);

En update de query als volgt:

SELECT * FROM myTable WHERE categoryId = 1 AND (value1 <= 9) AND (value2 <= 9) AND (value3 <= 9) AND (value4 <= 9) AND (value1 + value2 + value3 + value4) > 9;
SELECT * FROM myTable WHERE categoryId = 1 AND (value1 <= 5) AND (value3 <= 5) AND (value4 <= 5) AND (value1 + value3 + value4) > 5;

De aanvullende voorwaarden helpen het aantal te verwerken rijen te beperken. Het toevoegen van indexen aan meer kolommen zou dit verder versnellen, maar ik raad aan om dit eerst te proberen.



  1. Nieuwe gebruikers per dag krijgen in MySQL

  2. PHP PDO SQL retourneert slechts één rij met gegevens in plaats van alle rijen

  3. SQL MAAK TABEL voor beginners

  4. Hoe op te lossen:mysql:[ERROR] Optie gevonden zonder voorafgaande groep in configuratiebestand /etc/mysql/my.cnf?