Choix d' index pour une table mysql

pe.gaze
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 4
Inscription: 20 Avr 2006

Choix d' index pour une table mysql

Message le Mer Déc 19, 2007 11:59

Bonjour,

Les index sur les tables mysql ne sont pas encore très clairs dans ma tête, j'aurai aimé avoir vos conseils pour le choix d'index.

J'ai une base de photo avec des champs :

numero d'image (int) (primary key)
rubrique (varchar)
sous rubrique (varchar)
titre d'image (varchar)
text d'image (text)
etc...

Je fais essentiellement des requettes pour :
- afficher des galeries d'images par rubrique ou sous rubrique
- pour afficher les images.


Pour optimiser mes requêtes pour les galeries, dois-je créer un index sur : rubrique et sous rubrique ou alors faut il que je mette les autres champs également (titre, texte, etc...) ?

Ou alors, dois je faire un index dédié aux requettes par rubriques et un index dédié au requêttes par sous rubriques ?

Pour optimiser mes requêtes pour les photos dois-je créer un index ? le numero d'image est déjà Primary Key.

Merci d'avance,
Pierre-Etienne
Dernière édition par pe.gaze le Jeu Juil 03, 2008 10:58, édité 1 fois.


erestrebian
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 472
Inscription: 15 Juin 2007

Message le Mer Déc 19, 2007 12:12

Est-ce qu'il ne serait pas plus judicieux de stocker les rubriques et les sous rubriques dans deux tables externes... Cela pour deux raisons, d'une part tu as plus de chance de ne pas te tromper dans le nom de rubrique ou de sous rubrique, d'autre part, si un jour tu veux rajouter des champs à une rubrique ou une sous-rubrique, ce sera plus facile. La question que tu te poses est à combien de rubriques peut appartenir une sous-rubrique si c'est 1 tu peux mettres le numéro de rubrique dans la sous-rubrique, si c'est plus, il faut que tu crées une table intermédiaire où ta clef primaire sera l'ensemble num_rubrique, num_sous_rubrique.

pour les index, le mieux est que tu prennes donc rubrique et sous rubrique.

pe.gaze
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 4
Inscription: 20 Avr 2006

Message le Mer Déc 19, 2007 16:13

Merci pour ces éclairages ;-) Je vais voir comment améliorer ma table

pe.gaze
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 4
Inscription: 20 Avr 2006

Message le Sam Jan 19, 2008 11:49

Bonjour,

J'ai enfin trouvé le temps de plancher sur les index. Il est temps car j'ai vraiment dès problèmes de lenteur.
C'est la rédaction de ma requette qui n'est pas très claire.

J'ai créé un index : KEY `idx_galery` (`rubrique`,`sous_rubrique`)


Est ce que l'index idx_galery sera utilisé si j'écris en php ma requette ainsi :

SELECT * FROM tbl_photos WHERE rubrique = '".$var1."'

SELECT * FROM tbl_photos WHERE rubrique = '".$var1."' AND sous_rubrique = '".$var2."'


ou alors faut-il préciser dans la requette qu'il faut utiliser l'index ? Du genre :

SELECT * FROM tbl_photos WHERE idx_galery = '".$var1."'

SELECT * FROM tbl_photos WHERE idx_galery = '".$var1."' AND idx_galery = '".$var2."'

Merci d'avance pour votre aide. J'essaye de combler l'immensité de mes lacunes mais celà ne va pas très vite :-)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité