web-dev-qa-db-ja.com

MySQLデータベースの物理的にどこにインデックスが配置されているか

ALTER TABLE contacts ADD KEY (columnName);を使用してテーブルにインデックスを付けた場合、インデックス情報はMySQLデータベースの物理的にどこにあるのだろうと思いますか?

  1. そのテーブルにとどまり、新しい空間列を追加します。
  2. そのテーブルとは別に滞在してください。

#2が正解だと思います。

複数のテーブルの列にインデックスを付けることはできますか?どうやって?

5
5YrsLaterDBA

MyISAMエンジンの場合、テーブルのインデックスは.MYIファイルに(テーブルの.MYDおよび.frmファイルとともにデータディレクトリに)保存されます。

InnoDBエンジンの場合、インデックスはテーブルとともにテーブルスペースに格納されます。 innodb_file_per_tableオプションが設定されている場合、インデックスは.ibdファイルとともにテーブルの.frmファイルにあります。

いいえ、複数のテーブルを参照するインデックスを作成することはできません。インデックスはテーブルに固有です。

8
spencer7593

MySQLを使用すると、キーを含むすべてのテーブル情報がINFORMATION_SCHEMAデータベース。

より詳細な回答については、 データベース管理者 に尋ねることをお勧めします。

0
Matt Clark