wozz
Invité n'ayant pas de compte PHPfrance
11 août 2005, 13:26
Bonjour,
Effectivement lors du premier essai, les tables différaient de quelques enregistrements. Cette fois ce sont bien les mêmes.
J'ai ouvert et fermé la connexion pour chaque test et ajouter le terme "SQL_NO_CACHE" pour mes requêtes.
<?
// OUVERTURE CONNEXION
include "inc/confing.inc.php";
$total = microtime();
$query = "SELECT SQL_NO_CACHE message_box.id_msg, message.msg ";
$query .= "FROM message_box ";
$query .= "LEFT JOIN message ";
$query .= "ON message_box.id_msg = message.id_msg ";
$res = mysql_query($query);
echo microtime() - $total;
// FERMETURE CONNEXION
mysql_close();
echo "<br><br>";
// OUVERTURE CONNEXION
include "inc/confing.inc.php";
$total = microtime();
$query = "SELECT SQL_NO_CACHE bd2.message_box.id_msg, bd1.message.msg ";
$query .= "FROM bd2.message_box ";
$query .= "LEFT JOIN bd1.message ";
$query .= "ON bd2.message_box.id_msg = bd1.message.id_msg ";
$res = mysql_query($query);
echo microtime() - $total;
// FERMETURE CONNEXION
mysql_close();
?>
Résultats obtenus. Je donne ci-dessous le lancement du scripts 3 fois.
Avec tables dans même base
essai1 : 0.00036600000000001
essai2 : 0.00025800000000001
essai3 : 0.00024000000000002
Avec tables sur bases différentes
essai1 : 0.00020700000000001
essai2 : 0.00021400000000002
essai3 : 0.00021599999999999
Il apparait donc que cela est plus rapide lorsque les données sont sur des bases différentes.
Pourquoi a-t-on des résultats si différents ? Si tu trouves une explication je suis preneur
Mes tables sont indexées sur un seul champ, celui de la jointure.
Bref pour moi ces résultats son encourageants car je pense que je ne modifierai pas mes scripts en vain pour aller chez mon nouvel hébergeur, qui je le rappelle, m'interdit d'avoir des bases de plus 50Mo sous peine de me mettre sur un autre serveur MySQL plus lent selon lui.
Merci
Cette fois j'ai balisé directement mon PHP, je suis un garçon sage
