Bienvenue sur www.STUDENT-DESIGNER.com

Annonces


Forum

Forum Forum > PHP / Mysql > Optimisation MYSQL

Optimisation MYSQL

Page : [1] 2
Colas Ecrit le Vendredi 25 Aout 2006 à 11h30


Messages : 313
Grade : Partenaire Particulier
Statut : Hors ligne

-- Sujet Déplacé --

Je sais, ça n'a pas grand chose à voir (je vais me faire bannir par aYou !!!^^). Mais si vous avez besoin d'explications claires pour optimiser votre base mysql et notamment créer des index permettant d'accélérer nettement vos requêtes de type Select, je suis l'homme qu'il vous faut !
J'ai réussi à faire passer des requêtes de 800 à 6 secondes cette semaine (avec des requêtes contenant des jointures multiples entre des tables contenant jusqu'à 100 000 lignes...) :D
Mais non, mes chevilles vont très bien ;)

Edit de X-LozH : Wahooo ! Les modérateurs peuvent déplacer des messages maintenant ! aYou va pouvoir s'amuser !!! ;)

manu Ecrit le Vendredi 25 Aout 2006 à 14h42


Messages : 450
Grade : Administrateur
Statut : Hors ligne

Citation :
J'ai réussi à faire passer des requêtes de 800 à 6 secondes cette semaine (avec des requêtes contenant des jointures multiples entre des tables contenant jusqu'à 100 000 lignes...) :D
Mais non, mes chevilles vont très bien ;)


Une requete qui prend 800 secondes????? Ya pas un problème dans la conception de tes tables non ^^. 100 000 lignes ne devraient pas posé de problèmes a MYSQL. Ta fais un EXPLAIN de ta requete ? Tu fais des jointures sur combien de tables?

Ta fait que de plus que de mettre des index a tes clés étrangeres et primaires ? Si tu as des astuces suplémentaires je suis preneur.

Colas Ecrit le Vendredi 25 Aout 2006 à 17h42


Messages : 313
Grade : Partenaire Particulier
Statut : Hors ligne

alors déjà, la base c'est une base de FT... donc je n'en suis absolument pas le concepteur... j'ai juste eu besoin de leur optimiser leur base.

A part les index bien placés (chose qu'il faut déjà bien connaître), il a fallu que je vérifie la taille de toutes leurs clés :
ils avaient par exemple la clé primaire d'une table en varchar(10), alors qu'elle était indiquée en clé étrangère dans une autre table en varchar(15). Que des trucs comme ça...

Et l'explication des 6 secondes (ce qui est déjà énorme), c'est le nombre de jointures (une dizaine par requête en moyenne) ... et leur serveur !

Prodigy Ecrit le Samedi 26 Aout 2006 à 01h32


Messages : 61
Grade : Membre
Statut : Hors ligne

Des clés en varchar ? O_o :o :s

Colas Ecrit le Samedi 26 Aout 2006 à 10h12


Messages : 313
Grade : Partenaire Particulier
Statut : Hors ligne

oui prodigy... des clés en varchar !
Mais elles sont justifiées dans certains cas. Notamment parce que certaines viennent d'un ancien système qui cumulait les chiffres et les lettres. Et ça, on ne peut pas y toucher, faut adapter le produit aux données qui existent déjà et aux données à venir.

aYou Ecrit le Samedi 26 Aout 2006 à 12h35


Messages : 386
Grade : Super Modérateur
Statut : Hors ligne

le md5 par exemple ?

Colas Ecrit le Samedi 26 Aout 2006 à 14h01


Messages : 313
Grade : Partenaire Particulier
Statut : Hors ligne

Le md5 te donne effectivement une chaîne de 32 caractères (chiffres et lettres), mais il y a peu de chances qu'une clé primaire ou étrangère dans une base de données soit une chaîne codée en md5.
Pour info ou rappel, ce qu'on appelle une clé étrangère est un champ d'une table qui permet de faire une jointure avec une autre table (souvent avec la clé primaire de cette autre table). Les puristes risquent de se sentir choqués par ma simplification, mais pour les débutants, ça peut aider à comprendre.

aYou Ecrit le Samedi 26 Aout 2006 à 14h49


Messages : 386
Grade : Super Modérateur
Statut : Hors ligne

oui lol ca je sais ^^ ^^ Mais c'est quand même fesable :o

Prodigy Ecrit le Samedi 26 Aout 2006 à 14h53


Messages : 61
Grade : Membre
Statut : Hors ligne

Je suis pas sûre que "jointure" soit très parlant pour un débutant.

Une jointure est une relation entre une ou plusieurs tables d'une base de données. Ces relations sont représentées par les correspondances entre les clés primaires et étrangères.

Les relations permettent d'organiser les informations de la base. On parle alors de base de données relationnelles.

Colas Ecrit le Samedi 26 Aout 2006 à 16h22


Messages : 313
Grade : Partenaire Particulier
Statut : Hors ligne

Effectivement, c'est beaucoup mieux !
Tu devrais faire un tuto sur les bases des bases de données !

Page : [1] 2
Forum Forum > PHP / Mysql > Optimisation MYSQL

Derniers inscrits