-
la meilleure performance
Bonsoir,
disons que j'ai une table de jeu, et que les jeux ont un type et qu'il y a par exemple 20 types différents.
Je voudrais faire une recherche par type pour ça, j'ai envie de faire 20 liens,. un lien par type, mais pour ça j'ai pensé à 2 façons, mais je ne sais pas laquelle est la meilleure au niveau performance.
La première c'est de mettre directement les 20 liens en html
et la deuxième c'est de faire une boucle for et de parcourir les types dans la base de données et de les afficher.
est-ce que la première solution est la meilleure parce qu'on sait combien de type il a, est-ce que la deuxième est la moins bonne solution car il va aller parcourir dans la base de données et tout ça alors qu'on sait combien de type il y a , ou alors est-ce que l'affichage html de 20 types en lien est plus lent que le traitement d'une boucle for qui va parcourir la base de donnée.
je sais que c'est un bête détail mais bon :s ça me perturbe tellement :o
merci d'avance pour ceux qui prendront le temps et la peine d'y répondre
j'espère avoir été bien clair car je ne suis pas très doué dans les explications :roll:
-
20 liens html seront forcément plus rapide qu'une boucle et l'interrogation d'une bdd.
Pour ce genre de cas la question de la performance n'est pas la bonne. Demande toi surtout :
- Peut il y avoir de nouveau type ?
- Les type en place peuvent il être amener à être modifiés ?
- Est ce que j'ai vraiment envie de m'emmerder à écrire 20 lien alors qu'une boucle peux le faire pour moi ?
Tu risque de vite te rendre compte que finalement les 4ms que tu vas perdre avec la boucle et l'accès à la bdd, tu les regagnera plus tard en maintenabilité du code.
-
Une solution alternative peut être le cache :)
Vous écrivez en php avec les différents accès à la base de donnée, mais vous généré un fichier cache, comme cela, aux prochaines consultations vous chargerez uniquement le html en cache :)
1. un code maintenable
2. un code performant qui décharge la base de donnée ;)
-
Oui je rejoins grunk... à partir de l'instant où tu utilise une bdd, autant en profiter. Les questions de performances n'entrent pas en jeu à ce niveau là ou il faudrait que cela t'évite une grosse requête pénalisante pour l'application. Si ce n'est pas le cas, fais ta requête et te prends pas le choux.
Après tu peux aussi suivre l'idée de imikado pour optimiser tout ça mais bon même si tu ne sais pas le faire, ne te prive pas d'une petite requête.
Moins tu mettras de code en dur et mieux tu te porteras.