J'écris une requête dans postgres pour sélectionner les messages avec plus de commentaires.PostgreSQL compte plusieurs fois la performance des requêtes
Les travaux suivants, mais je me demande si cela pourrait devenir un problème de performance avec de nombreux messages.
Recherche:
SELECT
po.*,
(SELECT count(id) FROM comments WHERE post_id = po.id) AS comments_count
FROM posts AS po
ORDER BY comments_count DESC
LIMIT 10;
Résultat:
id title body comments_count
2 Foo Bar 5
1 Click Bait 4
Y at-il quelque chose que je peux faire pour améliorer cette performance de requête ou est-ce ok?
Dans le deuxième exemple que je reçois cette erreur: argument 'WHERE doit être de type booléen, tapez pas integer' – pietrovismara
@pietrovismara - C'était une faute de frappe. Mise à jour de la réponse S'il vous plaît essayez maintenant – GurV
Quoi qu'il en soit, en comparant le résultat 'EXPLAIN' pour votre première requête et le mien, le vôtre semble beaucoup mieux. Est-ce parce que l'utilisation de rejoindre le compte est fait uniquement sur les commentaires correspondants au lieu de tous? – pietrovismara