table MySQL : optimisation / structure
Met des index sur tes attributs de jointure, et compare le temps d'execution.
le 16/12/2005 à 16:31
i M@N
Reuh ...
Bah j'ai mis des index sur label, artiste et riddim et j'ai la même chose niveau temps de génération.
Mes tables fonctionnent avec les formats : 1 table = 1 format.
Peût-être que je devrais essayer de revoir tout le site et créer une seule table avec tous les formats et mettre des index sur format, label, artiste et riddim ...
Je vais voir si c'est pas trop génant niveau modification de code et si ça donne du mieux, mais j'en doute quand je vois la différence de génération entre le même script chez moi et chez unetun.com.
@+...
One Love, One Heart, One Unity.
le 16/12/2005 à 16:32
i M@N
erf ...
@ LA_GLOBULE : y'a aucune jointure dans mes requêtes.
@+...
One Love, One Heart, One Unity.
le 16/12/2005 à 17:26
i M@N
Reuh ...
une ou plusieurs tables ça change rien ... le souci vient de chez l'hébergeur qui rame apparemment :
3,3554 sec chez unetun.com
0,1345 sec chez moi.
@+...
One Love, One Heart, One Unity.
En fait, met des index sur tes attributs qui sont dans ton where.
Je pense qu'il serait aussi bon de lui conseiller de regarder la documentation de l'instruction 'explain'. Elle permet de voir les colonnes utilisées, et surtout, si un fichier temporaire est créé pour donner le résultat de la requête.
Ce qui avec un order by et quasiment assuré.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Oui, mais l'explain n'est pas à la portée de tout le monde :)
Tout le monde ne fait pas de l'informatique tous les jours, et ceux qui s'y interessent vraiment, normalement, ils apprendront pas eux memes l'existence de cette fonction (qui va avec la connaissance des divers algos possibles de recherche en base).
Mais c'est vrai que c'est plus que conseillé, ne serait que pour connaitre les index qu'utilisent MySQL pour executer la requete (MySQL qui a notamment des comportements extremement Z avec les index. Oracle est beaucoup plus "régulier").
le 16/12/2005 à 21:22
i M@N
Reuh ...
Pour le EXPLAiN j'ai fait ça après une recherche sur google cet aprèm mais il m'a rien appris ... j'ai suivi le truc de mettre ma requête dans la fenêtre SQL de PhpMyAdmin mais aucune proposition, kedal ... puis y'a la différence énorme de temps (regardez mon post avant) entre unetun.com et chez moi spa une histoire d'index, c'est le même script et le rapport est de 25 ... 25 fois moins rapide que chez moi !
Je crois que je vais tester ça chez free pour voir ...
@+...
One Love, One Heart, One Unity.
Google ne doit pas être un réflexe systématique ;) Regardes dans la
doc de MySQL quand tu as besoin d'une aide précise sur une instruction de MySQL.
En ce qui concerne explain, je ne trouve pas que ce soit si illisible que ça. Il suffit de bien lire la doc, et il n'y a aucune difficulté à l'exploiter. Utiliser explain peut sauver de nombreuses heures.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
le 19/12/2005 à 17:46
Bzh
Up up up !!!!
<?php
$sql = 'SELECT * FROM cat_'.$format.'
WHERE label = "'.$label.'"
AND qty >= "1"
ORDER BY label,artiste,riddim
LIMIT '.$debut.','.$nb_affichage_par_page.'';
?>
SELECT * est vraiment à proscrire !!!!