Bonjour,

Il m'est venu une question :
vaut-il mieux faire une grosse requete et l'analyser en php
ou
vaut-il mieux faire de multiples requetes

j'ai donc mesuré le temps sur 1000 iterations de

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
$liste = array(0=>4, 1=>7, 2=>2, 3=>14);
 
foreach ($liste as $value) {
	$sql = 'SELECT nom FROM clients WHERE idx =' . $value;
	$res = mysql_query($sql);
	while ($data = mysql_fetch_array($res)) {
		echo $data["nom"]
	}
}
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
foreach ($liste as $value) {
$in_liste .= $value . ",";
	}
 
$in_liste = substr($in_liste,0,-1); // on retire la derniere virgule
 
$sql = 'SELECT nom from clients WHERE idx IN (' . $in_liste . ')';
$res = mysql_query($sql);
 
while ($data = mysql_fetch_array($res)) {
	echo $data['nom'];
	}
Le resultat est très nettement en faveur du cas 1 (interrogation multiples de la bdd) mais le point lent du cas 2 semble être tout betement la construction de la $in_liste ...

Globalement quelle méthode utilisez-vous ?
La méthode 1 donne un code beaucoup plus simpe mais provoque des interrogations repetées de la bdd.

Est-ce que mon test est biaisé parce j'aurais mal construit mon cas 2 ?

Merci pour vos reponses.