par
Hubert Roksor » 26 mars 2008, 01:19
on m'as dit que en php-mysql il valait mieux faire une grosse requête que plein de petites requêtes arrivant au même résultat
Pas forcément, ça dépend des cas.
Il n'y a pas de relation directe entre le nombre de requêtes et les performances d'un script.
cette requête
Merci de ne poster que la requête, pas tout le script autour. Aussi, pense à formatter la requête, si tu fais des lignes de 300 caractères c'est super dur à lire.
Si tu veux l'optimiser, poste le résultat de la requête via EXPLAIN, préférablement dans le client MySQL (si tu es en local).
Par exemple, pour récupérer les auteurs et leurs post, une requête suffit.
Pour être complet, j'aimerais préciser que si la jointure porte sur un grand nombre d'enregistrements il se peut là encore que deux requêtes valent mieux qu'une. Par exemple, on voit ça dans le forums, dans les sujets à rallonge. Si on prend un sujet de 2000 messages et qu'on veut récupèrer les 10 messages les plus récents, avec une jointure le serveur est obligé de joindre 2000 messages à 2000 auteurs, puis trier le tout et afficher les 10 derniers. Dans ce cas précis, il vaut mieux rechercher les 10 derniers messages parmi 2000 puis faire une seconde requête pour les 10 autres de ces messages.
C'est pour ça qu'il vaut mieux tout tester, et jeter un oeil sur les résultats d'EXPLAIN.
[quote="yuuzhantar"]on m'as dit que en php-mysql il valait mieux faire une grosse requête que plein de petites requêtes arrivant au même résultat[/quote]
Pas forcément, ça dépend des cas. [b]Il n'y a pas de relation directe entre le nombre de requêtes et les performances d'un script.[/b]
[quote="yuuzhantar"]cette requête[/quote]
Merci de ne poster que la requête, pas tout le script autour. Aussi, pense à formatter la requête, si tu fais des lignes de 300 caractères c'est super dur à lire.
Si tu veux l'optimiser, poste le résultat de la requête via EXPLAIN, préférablement dans le client MySQL (si tu es en local).
[quote="zeus"]Par exemple, pour récupérer les auteurs et leurs post, une requête suffit.[/quote]
Pour être complet, j'aimerais préciser que si la jointure porte sur un grand nombre d'enregistrements il se peut là encore que deux requêtes valent mieux qu'une. Par exemple, on voit ça dans le forums, dans les sujets à rallonge. Si on prend un sujet de 2000 messages et qu'on veut récupèrer les 10 messages les plus récents, avec une jointure le serveur est obligé de joindre 2000 messages à 2000 auteurs, puis trier le tout et afficher les 10 derniers. Dans ce cas précis, il vaut mieux rechercher les 10 derniers messages parmi 2000 puis faire une seconde requête pour les 10 autres de ces messages.
C'est pour ça qu'il vaut mieux tout tester, et jeter un oeil sur les résultats d'EXPLAIN.