phpMyAdminでインデックステーブルを確認する方法

phpMyAdminでインデックステーブルを確認する方法

Posted at December 4,2014 12:55 AM
Tag:[phpMyAdmin]

phpMyAdminでインデックス(インデックステーブル)を確認する方法を紹介します。

認識誤り等ありましたらどこかでつぶやいてください。

1.インデックス(インデックステーブル)とは

インデックスとはデータベースのレコードを高速に検索するための仕組み、インデックステーブルとは、その仕組みを使って高速に検索するため情報が格納されたテーブルを指します。

インデックステーブルは検索対象のデータと、データが本来のテーブルのどの位置にあるかを示す値(キー)で構成されています。

インデックステーブルは通常のテーブルとは異なるものですが、phpMyAdminを使えばインデックステーブルを確認することができます。

2.インデックステーブルをphpMyAdminで確認する

ここではMovable Typeのテンプレート情報を保持するmt_templateテーブルを例に説明します。

画面は旧バージョンですが、phpMyAdminの新しいバージョンでも同様の操作で行えると思います。

インデックステーブルをphpMyAdminで確認するには、確認したいテーブルの「構造」をクリック。

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の解説については下記のページが参考になると思います。

なぜBTreeがIndexに使われているのか

「ユニーク」は検索した結果から一意のレコードが求まるか、そうでないかを意味します。

「一意な値の数」は、検索するキーの数になります。テーブルに新たなレコードが追加されると、の部分が更新されることがあります。

「照合順序」は、たとえば「あ」「ア」「ア」を並べる場合、どのような順序で並べるのか、文字の順序関係を決めるためのものです。

「A」の意味までは調べきれてませんが、照合順序の種別を示すものと思われます。

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)