Faire travailler php ou mysql ?
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:
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:
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.