|
Publicité | ||||||||||||||||||||||
|
|
#1 (permalink) |
|
Membre expérimenté
![]() Date d'inscription: août 2007
Messages: 598
|
Bonsoir à tous,
Ma requète fonctionne, mais elle est très, très, très lente !!! Code :
<?PHP // Connexion à la base de données $sql = mysql_connect('sql7','bonbon','azerty')or die("Impossible de se connecter : " . mysql_error()); mysql_select_db('bonbon?toto3',$sql) or die('Could not select database.'); $Resultat = mysql_query('SELECT che, date, hipo, temps_g FROM recup_t ORDER BY che, date DESC'); echo "<CENTER>"; echo '<p align="center"><u><b><font size="5" color="#003300">Liste des Chevaux</font></b></u></p>'; echo '<div class="aff1" style="height:300px; width:520px; overflow:auto; font-family: Times New Roman; font-size: 10px;">'; echo '</CENTER>'; echo '<table border="3" bordercolor="#003300" style="border-collapse:collapse; font-family:Times New Roman; font-size:10px;">'; while ($row=mysql_fetch_array($Resultat)) { echo "<tr>"; echo "<td>".trim($row['che'])."</td>"; echo "<td>".changedateusfr($row['date'])."</td>"; echo "<td>".$row['hipo']."</td>"; echo "<td>".$row['temps_g']."</td>"; echo "</tr>"; } echo '</table>'; echo '</div>'; ?> + la date décroissante + l'hipodromme + son chrono La base comporte environ 30.000 lignes, sachant que le mème cheval ne courre pas forcément toutes les courses La requète prends environ 80 secondes pour s'afficher. Ma demande, c'est d'optimiser au maximum le temps de réponse. |
|
|
|
|
|
#2 (permalink) |
![]() Date d'inscription: juillet 2005
Messages: 10 021
|
Tu affiches les 30000 lignes sur une meme page ?
au passage : tu n'as pas besoin d'une fonction PHPpour convertir ton format de date, mysql sait le faire Code :
SELECT date_format('champ_date','%d/%m/%Y') il est egalement deconseillé de nommer des colonnes "date" |
|
|
|
|
|
#3 (permalink) |
|
Membre expérimenté
![]() Date d'inscription: août 2007
Messages: 598
|
Bonsoir sabotage,
Non, je n'affiche pas les 30.000 lignes, c'est le nombres de lignes de la base de données. Le résultat de la requète, ne devrais afficher que 200 ou 300 lignes maximum. Pour le nom du champ date, tu a raison, cela peut éventuellement faire conflit avec une variable système. Ma fonction : changedateusfr, corresponds a (%d/%m/%Y'), mais je pourais la shunter. |
|
|
|
|
|
#7 (permalink) |
|
Membre expérimenté
![]() Date d'inscription: août 2007
Messages: 598
|
Comme je l'ai dit plus haut, sur une année, 30.000 chevaux ont courru,
le mème cheval lui n'aura courru en gros que 200 à 300 fois voir moins. Ma date est enregistrée au firmat Américain dans la base, c'est pourquoi je dois la transformer au format Français. |
|
|
|
|
|
#8 (permalink) | |
![]() Date d'inscription: juillet 2005
Messages: 10 021
|
Et la notion de ne considérer "qu'un seul cheval" apparait ou dans ton code ?
Citation:
|
|
|
|
|
|
|
#12 (permalink) |
![]() |
Ta requête :
Code SQL :
SELECT che, date, hipo, temps_g FROM recup_t ORDER BY che, date DESC Je crois comprendre à cette requête que tu n'as qu'une table qui stocke le nom du cheval et le nom de l'hippodrome autant de fois qu'ils apparaissent ? A moins que recup_t soit une vue, ta base de données n'est pas structurée correctement ! ![]() Les colonnes che et date sont-elles indexées pour optimiser les performances ?
__________________
Philippe Leménager. Futur ingénieur CNAM, ingénieur d'étude à l'École Nationale de Formation Agronomique. « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) |
|
|
|
|
|
![]() |
||
Optimisation requète MYSQL
|
||
| Outils de la discussion | |
|
|