Choix d' index pour une table mysql
4 messages
• Page 1 sur 1
- pe.gaze
- Nouveau WRInaute

- Messages: 4
- Inscription: 20 Avr 2006
Choix d' index pour une table mysql
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
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

- Messages: 472
- Inscription: 15 Juin 2007
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.
pour les index, le mieux est que tu prennes donc rubrique et sous rubrique.
- pe.gaze
- Nouveau WRInaute

- Messages: 4
- Inscription: 20 Avr 2006
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
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
4 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- PHP MySql copy table à table [RESOLU]
- UPDATE TABLE MYSQL !
- table mysql : category
- Séparer une table MySQL
- Erreur creation de table Mysql
- MYSQL TABLE VS BASE DE DONNÉE?
- Contenu de table MySQL référencé???
- Dédoublonner une table MySql par id
- [MYSQL] Pb de requête + optimisation structure table
- Exporter un champ d'une table Mysql
- Les pays gérés par la Google Toolbar 2.0 - 26-06-2003
- GoogleStats : analyse temps réel des visites de Google sur votre site - 02-10-2002
- Yahoo Slurp et autres robots d'indexation de Yahoo - 07-03-2004
- AdSense Tracking : statistiques détaillées sur les clics AdSense - 29-02-2004
- Sortie officielle de GoogleStats v2.0 ! - 23-02-2003
- Services et outils de Yahoo! Search - 17-02-2004
- Parts de marché des moteurs aux USA (Octobre 2006) - 04-12-2006
- Script de mise en cache des pages (PHP MySQL) - 09-08-2010
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
