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
et
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"] } }
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 ...
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']; }
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.
Partager