web-dev-qa-db-fra.com

Où est l'index situé physiquement dans la base de données MySQL

Vous vous demandez simplement où sont les informations d'index situées physiquement dans la base de données MySQL si j'ai indexé une table avec ALTER TABLE contacts ADD KEY (columnName);?

  1. il restera avec cette table et ajoutera une nouvelle colonne spaciale;
  2. rester séparément de cette table;

Je pense que le n ° 2 est la bonne réponse.

Pouvons-nous indexer des colonnes de plus d'une tables? comment?

5
5YrsLaterDBA

Pour le moteur Myisam, les index d'une table sont stockés dans le .MYI Fichier (dans le répertoire de données, avec le .MYD et .frm Fichiers pour la table).

Pour le moteur InnoDb, les index sont stockés dans l'espace de table, ainsi que la table. Si innodb_file_per_table L'option est définie, les index seront dans la table .ibd fichier avec le .frm fichier.

Non, il n'est pas possible de créer un index qui fait référence à plus d'une table. Un index est spécifique à une table.

8
spencer7593

Utilisation de MySQL, toutes les informations sur la table, y compris les clés, sont situées dans le INFORMATION_SCHEMA base de données.

Pour une réponse plus détaillée, vous voudrez peut-être poser des questions sur administrateurs de base de données .

0
Matt Clark