Performance et nombre de requête
Bonjours.
Je me posais une simple question, peut être un peu conne mais je ne peux pas vraiment pour le moment faire de test de performance. La question étant assez basique je pense que vous arriverez à me répondre rapidement.
Le code est du PHP. Voici actuellement la portion de code qui est ambigüe.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| $sql = 'SELECT pho_id, pho_idname, pho_name, pho_type, pho_width, pho_height, pho_size, pho_date
FROM photo
WHERE pho_id >= '.$id.'
ORDER BY pho_id
LIMIT 3';
$req = mysql_query($sql);
if(mysql_errno()) {
$this->error[] = "Erreur SQL ! ".mysql_error(); //Ajout d'un message dans la pile des erreurs
}
$nbResultat = mysql_num_rows($req);
if($nbResultat == 3) {
/* On a bien 3 résultats au dessus et donc on peut compléter correctement les attributs et créer les objets */
for($i=0; $i < $nbResultat; $i++) {
$data = mysql_fetch_array($req);
if($i == 0) {
$this->medium = new MediumImg($data['pho_id'], $data['pho_idname'], $data['pho_name'], $data['pho_type'], $data['pho_width'], $data['pho_height'], $data['pho_size'], $data['pho_date']);
$this->mini = new MiniImg($data['pho_id'], $data['pho_idname'], $data['pho_type']);
}
elseif($i == 1) {
$this->miniNext = new MiniImg($data['pho_id'], $data['pho_idname'], $data['pho_type']);
}
elseif($i == 2) {
$this->miniNextOfNext = new MiniImg($data['pho_id'], $data['pho_idname'], $data['pho_type']);
}
}
} |
Comme vous pouvez le constater j'effectue une grosse requête où je récupère beaucoup d'information pour 3 tuples alors que je n'ai besoin de beaucoup d'information que pour 1 tuples, le premier.
Ma question est donc, ma solution est-elle la bonne ou est-il préférable que j'effectue une requête avec 3 résultats avec les informations minimales plus une autre requêtes pour récupérer les informations supplémentaires. Je ne récupèrerais dans ce dernier cas aucune informations inutiles.
J'aurais bien besoin de votre avis.
Merci.