24-03-2008, 09:48 PM
Faites des benchmarks pour tester, vous seriez parfois surpris.
Il n'est pas rare que faire plusieurs petites requêtes au lieu d'une grosse (qu'il faut décortiquer derrière) soit bien plus performant.
Ça dépend de la situation, mais dans le doute : testez (c'est tout con hein : echo microtime(); for ($i=0; $i<100; $i++) { /* mon code ici */ } echo microtime(); et on regarde la différence entre les deux versions de "mon code ici" ).
Sinon, pour le problème de la lisibilité et des requêtes, j'ai définitivement réglé le problème ainsi : Toute requête devrait pouvoir être placée dans une fonction, et si je n'arrive pas à trouver un nom à cette fonctoin, c'est que le rôle de ma requête n'est pas clair et qu'elle doit donc être revue (quite à être divisée).
Et d'ailleurs je ne m'en prive pas, j'ai réellement pris pour habitude de mettre mes requêtes dans des fonctions (en réalité, des méthodes statiques) à part, ainsi dans mes actions (pages, méthodes d'objet, etc...) aucune requête SQL n'apparait, seulement de la logique "métier".
Il n'est pas rare que faire plusieurs petites requêtes au lieu d'une grosse (qu'il faut décortiquer derrière) soit bien plus performant.
Ça dépend de la situation, mais dans le doute : testez (c'est tout con hein : echo microtime(); for ($i=0; $i<100; $i++) { /* mon code ici */ } echo microtime(); et on regarde la différence entre les deux versions de "mon code ici" ).
Sinon, pour le problème de la lisibilité et des requêtes, j'ai définitivement réglé le problème ainsi : Toute requête devrait pouvoir être placée dans une fonction, et si je n'arrive pas à trouver un nom à cette fonctoin, c'est que le rôle de ma requête n'est pas clair et qu'elle doit donc être revue (quite à être divisée).
Et d'ailleurs je ne m'en prive pas, j'ai réellement pris pour habitude de mettre mes requêtes dans des fonctions (en réalité, des méthodes statiques) à part, ainsi dans mes actions (pages, méthodes d'objet, etc...) aucune requête SQL n'apparait, seulement de la logique "métier".
Ressources [PHP][MySQL][prototype.js]