phpMyAdminでインデックステーブルを確認する方法
phpMyAdminでインデックス(インデックステーブル)を確認する方法を紹介します。
認識誤り等ありましたらどこかでつぶやいてください。
1.インデックス(インデックステーブル)とは
インデックスとはデータベースのレコードを高速に検索するための仕組み、インデックステーブルとは、その仕組みを使って高速に検索するため情報が格納されたテーブルを指します。
インデックステーブルは検索対象のデータと、データが本来のテーブルのどの位置にあるかを示す値(キー)で構成されています。
インデックステーブルは通常のテーブルとは異なるものですが、phpMyAdminを使えばインデックステーブルを確認することができます。
2.インデックステーブルをphpMyAdminで確認する
ここではMovable Typeのテンプレート情報を保持するmt_templateテーブルを例に説明します。
画面は旧バージョンですが、phpMyAdminの新しいバージョンでも同様の操作で行えると思います。
インデックステーブルをphpMyAdminで確認するには、確認したいテーブルの「構造」をクリック。
次の画面でテーブルの構造が表示され、赤枠で囲んだ部分にインデックスについての情報が表示されます。
各項目の概略です。
「キー名」は、インデックステーブルのキーの名称を指します。
PRIMARYKEYは主キーを指し、それ以外のキーはmt_templateテーブルの特定のフィールドを検索するためのもので、フィールドに対応する名称がつけられています。
インデックスが作られるフィールドとそうでないフィールドがある理由ですが、Movable Typeの場合、lib/MT/Template.pmでデータベースの定義を行っており、下記の赤色部分に示すようにインデックスの定義も行っています。
__PACKAGE__->install_properties(
{ column_defs => {
'id' => 'integer not null auto_increment',
'blog_id' => 'integer not null',
'name' => {
type => 'string',
size => '255',
not_null => 1,
label => 'Name',
revisioned => 1,
},
…中略…
},
indexes => {
blog_id => 1,
name => 1,
type => 1,
outfile => 1,
identifier => 1,
},
…中略…
}
);
インデックスにあるPRIMARYKEYを除いた5つのキー名と、モジュールで定義したインデックス「blog_id/name/type/outfile/identifier」が対応していることが分かります。
「種別」のBTREEは検索アルゴリズム名を指します。
BTREEの解説については下記のページが参考になると思います。
「ユニーク」は検索した結果から一意のレコードが求まるか、そうでないかを意味します。
「一意な値の数」は、検索するキーの数になります。テーブルに新たなレコードが追加されると、の部分が更新されることがあります。
「照合順序」は、たとえば「あ」「ア」「ア」を並べる場合、どのような順序で並べるのか、文字の順序関係を決めるためのものです。
「A」の意味までは調べきれてませんが、照合順序の種別を示すものと思われます。
- phpMyAdmin のアップロードファイルサイズを変更する
- MySQL + phpMyAdmin によるバックアップ
- MySQLでエントリーのフィールドサイズを拡張する
- BerkeleyDB と MySQL のベンチマークテスト