Optimisation SQL - Une seule requête générale ou plusieurs petites requêtes ?

Eléphanteau du PHP | 34 Messages

13 janv. 2020, 11:40

Salut tout le monde,

Dans le cadre d'un projet PHP / SQL, je me pose une petite question concernant l'optimisation d'une requête SQL.

J'ai une table 'project' donc l'un des champs est 'paid' qui vaut 0 ou 1. En PHP, je dois récupérer le nombre de projet total, le nombre de projet payé (paid = 1), ainsi que le nombre de projet non payé (paid = 0).

Du coup, selon vous, vaut-il mieux faire une seule requête SQL, puis dans une boucle PHP, compter les payés, non payés, et total ou bien 3 requêtes SQL distinctes ?

Merci,
Franck

Mammouth du PHP | 1291 Messages

13 janv. 2020, 12:55

je pense que lancer 2 requêtes (pas besoin de 3) select count(*) ... est plus rapide que de parcourir tous les résultats d'une requête.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8431 Messages

13 janv. 2020, 21:14

Je dirai même 1 seule requête COUNT(*) GROUP BY paid pour récupérer directement le nombre de projets payés et inpayés, et tu n'as plus qu'à faire l'addition pour le nombre de projets total :-D
Quand tout le reste a échoué, lisez le mode d'emploi...