une grosse requête ou plusieur petites ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : une grosse requête ou plusieur petites ?

par pascaltje » 01 mars 2006, 09:49

Une seule requete est preferable, multiplier le nombre de requetes va ralentir ta page.

A+

Pascal

une grosse requête ou plusieur petites ?

par Kaimite » 01 mars 2006, 09:03

Bonjour,

Sur un site que je developpe je dois faire un espace de téléchargement avec plusieurs rubriques.

Sur le site je dois afficher les 3 derniers fichiers de chaque rubriques...

Malheureusement je ne peux pas le faire directement en une seule requete. J'ai donc deux solutions :

1 ere requete pour avoir toutes les rubriques et ensuite une requete par rubrique pour avoir les 3 derniers fichiers.

Donc si j'ai 10 rubriques j'ai au moins 11 requetes.

Autre solution faire un requete du style :

Code : Tout sélectionner

SELECT id, fichier, id_rubrique FROM fichiers ORDER BY id_rubrique ASC, date_upload DESC
Et ensuite, lors du traitement de la requete détecter le changement de rubriques et n'afficher que 3 résultats par rubrique.

Ce qui donne en gros :
<?php
$requeteFichiers = mysql_query("SELECT id, fichier, rubrique FROM tbl_fichiers ORDER BY rubrique ASC, date_upload DESC");

$rubriqueEnCours = "";

while ($resFichiers = mysql_fetch_assoc($requeteFichiers)) {
	/* TEST CHANGEMENT DE RUBRIQUE */
	if ($rubriqueEnCours != $resFichiers['rubrique']) {
		echo "Nouvelle rubrique : ".$resFichiers['rubrique'];
		$cptFichier = 0;
		$rubriqueEnCours = $resFichiers['rubrique'];
	}
	
	/* AFFICHAGE DES FICHIERS */
	if ($cptFichier < 3) {
		echo "- Le fichier : ".$resFichiers['fichier']."<br />";
		$cptFichier ++;
	}
}
?>
Ce n'est pas une très grosse requete non plus, mais s'il y a une 20aine de fichier par rubrique je suis à 200 résultats.

Pensez-vous donc qu'une seule requete de 200 résultats sera plus rapide à traiter que 10 requetes de 3 résultats ?

Merci de vos réponses.