2010-03-31 5 views
2

Peu de doutes de base que j'ai:comment fonctionnent les index dans les tables mysql (MyISAM)?

1. Is primary key column automatically indexed? 

2. What should be criteria to select index column? 

3. When should I club multiple columns? 

4. Does MyISAM or InnoDB has any affect on which columns should be indexed? Probably not. 

5. Are they really required, specially in case if primary key column is automatically indexed? 

Merci.

Répondre

1
  1. Oui. Key est le synonyme de l'index.
  2. Conception de base de données et requêtes utilisées. Il n'y a pas de réponse unique.
  3. Lorsque ces colonnes multiples ont été utilisées dans la requête. Il n'y a pas de réponse unique.
  4. Oui, le moteur n'a aucune incidence sur l'indexation.
  5. Habituellement, c'est le cas. Toute applicadion en direct ne se fonde pas sur ses données, pas seulement sur la clé primaire. Il n'y a pas de réponse unique.

L'indexation est un travail assez complexe. Tout d'abord, il devrait être fait en fonction des besoins réels. Si certaines de vos requêtes tournent lentement, il est temps d'ajouter des index. Si votre requête s'exécute rapidement, aucun index requis. Ensuite, exécutez votre requête avec le mot EXPLAIN devant, par ex. EXPLAIN SELECT * FROM table et voir ce qu'il dit. Habituellement, il aide à déterminer, où placer une idnexe.

http://dev.mysql.com/doc/refman/5.1/en/mysql-indexes.html - plus d'explications ici

+0

@Shrapnel: que cela veut dire que je devrais indexer toutes les colonnes qui sont fréquemment utilisés dans le choix des requêtes? – understack

+0

question éditée 4 pour être plus clair. – understack

+0

@understack pas si facile. Voir réponse à la mise à jour. –