04/10/2010, 17:52:13
je résume
1/ la première boucle t'as récupéré la liste des catégories ayant pour parent la n°7
2/ ensuite tu boucle pour récupérer chaque news ayant en catégorie l'une des catégories précédemment trouvées
3/ ensuite tu pioches le nom de l'auteur de la news précédemment récupérée
4/ enfin tu pioches tes deux champs complémentaires lié à la news précédemment récupérée
Alors je ne sais pas forcement pourquoi ca merde dans ton cas vu que "rapidement" là comme ca, ca me parait correct, mais par contre ce que je peux te dire en tant que gros consommateur de requête SQL c'est que tu as mal choisit ton algorithme.
Explication et petit cours rapide d'SQL
Chaque requête prend un certain temps à exécuter. temps d'exécution total = temps fixe d'initialisation de la requête + temps du à la complexité de la requête + temps du à la quantité de donnée remontée depuis la base (genre 2 513 155 lignes sur 42 colonnes )
dans ton cas on prend un exemple de production
50 news dans 4 catégories, ayant 6 auteurs différents et ayant tous +/- tes 2 champs complémentaires renseigné.
combien de requête ca nous fait ?
1/ 1 pour les catégories (4 lignes remontées en tout)
2/ + 4 pour la liste des news (50 lignes remontées en tout)
3/ + 50 pour la liste des auteurs
4/ + 50 pour la liste des éléments complémentaires
soit 1+4+50+50 = 106 requêtes sql pour afficher les infos de 50 news
la suite de mon post dans un second message
1/ la première boucle t'as récupéré la liste des catégories ayant pour parent la n°7
2/ ensuite tu boucle pour récupérer chaque news ayant en catégorie l'une des catégories précédemment trouvées
3/ ensuite tu pioches le nom de l'auteur de la news précédemment récupérée
4/ enfin tu pioches tes deux champs complémentaires lié à la news précédemment récupérée
Alors je ne sais pas forcement pourquoi ca merde dans ton cas vu que "rapidement" là comme ca, ca me parait correct, mais par contre ce que je peux te dire en tant que gros consommateur de requête SQL c'est que tu as mal choisit ton algorithme.
Explication et petit cours rapide d'SQL
Chaque requête prend un certain temps à exécuter. temps d'exécution total = temps fixe d'initialisation de la requête + temps du à la complexité de la requête + temps du à la quantité de donnée remontée depuis la base (genre 2 513 155 lignes sur 42 colonnes )
dans ton cas on prend un exemple de production
50 news dans 4 catégories, ayant 6 auteurs différents et ayant tous +/- tes 2 champs complémentaires renseigné.
combien de requête ca nous fait ?
1/ 1 pour les catégories (4 lignes remontées en tout)
2/ + 4 pour la liste des news (50 lignes remontées en tout)
3/ + 50 pour la liste des auteurs
4/ + 50 pour la liste des éléments complémentaires
soit 1+4+50+50 = 106 requêtes sql pour afficher les infos de 50 news
la suite de mon post dans un second message