Je cherche un moyen d'optimiser une requête SQL que j'ai. J'essaie d'obtenir combien de poèmes avec un certain genre.La requête SQL imbriquée prend trop de temps
la requête ressemble à ceci:
SELECT
COUNT(*)
FROM
`poems`
WHERE `id` IN (
SELECT `poem_id`
FROM `poems_genres`
WHERE `genre_title` = 'derision'
)
AND `status` = 'finished';
Il prend trop de temps (environ 6-10 secondes), car il ne peut pas utiliser les index (à cause de IN() je pense?). Existe-t-il un moyen de réécrire cette requête de manière différente pour obtenir le même résultat plus rapidement?
Merci, beaucoup de nouvelles informations pour moi :) –
Réécrire la requête en utilisant JOIN réduit les lignes examinées par une requête de 4266806 à 1644. Fonctionne comme un éclair :) –