Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour à tous,
J'ai une petite question MySQL.
J'ai une table profil, j'ai une table offre.
J'associe à ces tables des formations(profils) et des formations requises(offre).
Je stocke en fait les index des formations en questions.
Dans la table dans laquelle je stocke tout ca, j'ai donc ajouté des index sur tous les
champs qui sont des int.
Je me demandais donc si c'était la bonne méthode ?
Quel pourrait être l'intérêt de créer 1 index sur tous les champs en même temps ?
Merci d'avance pour vos réponse ou pour les éventuels liens que vous m'enverrez...
++
santino
Hors ligne
Saluton,
En fait, si tu utilises le moteur InnoDB, ces colonnes constituent des clés étrangères et, partant, seront, de fait, automatiquement indexées à la création de la structure de la table.
S'agissant de la pertinence de la création d'index, il faut toujours restituer les choses dans leur contexte. Un index n'est pas une bonne ou une mauvaise chose a priori.
Un index présente un avantage : accélérer les jointures et les recherches portant sur la(es) colonne(s) indexée(s)
Il présente deux inconvénients : augmenter la taille de la base de données, ralentir les insertions, les mises à jour et les suppressions puisqu'il faut bien mettre les index à jour lors de ces opérations.
On doit donc forcément arbitrer dans un compromis entre ces deux objectifs : accélérer la consultation ou l'édition des tables.
Cela dit, je ne fais, par ces propos, qu'enfoncer des portes ouvertes. Ces fadaises sont connues de tous et leur logique relève, beaucoup, de la tautologie.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Salut,
Merci pour ta réponse...
De fait, il s'agit de clé étrangère. Je ne travaille pas avec Inno DB, je crée ma table
directement dans pma.
Ma question portait surtout sur le fait qu'il existe la possibilité de créer un index sur
plusieurs champs en même temps, je me demandais donc s'il y avait une différence
avec la création d'un index par champ
++
santino
Hors ligne
De fait, il s'agit de clé étrangère. Je ne travaille pas avec Inno DB, je crée ma table
directement dans pma.
On peut très bien créer des tables relevant du moteur InnoDB sous PMA et y créer des contraintes de clés étrangères. Ce n'est pas l'environnement que je choisirais, mais il n'y a pas d'impossibilité.
Le seul argument réel qui milite pour demeurer sous MyIsam c'est l'utilisation d'index FULL TEXT qui n'existent pas sous InnoDB. Car avec MyIsam on se prive de tout le moteur transactionnel et des gestions en CASCADE.
Ma question portait surtout sur le fait qu'il existe la possibilité de créer un index sur
plusieurs champs en même temps, je me demandais donc s'il y avait une différence
avec la création d'un index par champ
Un index sur colonnes multiples requiert du SGBD un index par colonne et un algorithme d'optimisation. Donc recréer un index sur des colonnes participant déjà à un index multi-colonne me semble superflu.
Ceci étant, en cas de doute sur la pertinence d'index pour optimiser une requête tu peux utiliser EXPLAIN.
Je crois même qu'on devrait ériger cela en dogme, tester des versions différentes de toutes ses requêtes avec EXPLAIN, c'est très souvent instructif.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Pages :: 1