今アプリケーションのパフォーマンス改善の為、既存のテーブルに対してインデックスを貼るという作業を人生で初めて行っております。
ネットに落ちているリファレンスを見るとexplain select * from テーブル名
で
id | selecttype | table | type | possiblekeys | keys |
---|---|---|---|---|---|
1 | SIMPLE | テーブル名 | ALL | null | null |
のようなインデックステーブルが現れ、このTypeがALLであるとテーブルフルスキャン状態でindexが全く当たっていない状態と書いてありました。
そこでAlter table テーブル名 add index インデックステーブル名(カラム名);
でインデックスを追加して、再度explain select * from テーブル名
を実行してみたのですが、上のインデックステーブルは特に変更されておらず。。。。
そこでexplain select * from テーブル名
のコマンドを実行してみると先ほど作成したインデックステーブルやその他のインデックステーブルみたいなものが数個出てきました。
インデックスが貼られているの以下のような形となったりするらしいですが。。。。
|id|select_type|table|type|possible_keys|key|key_len|ref|rows|Extra|
|---|---|---|---|---|---|---|---|
1|SIMPLE|person_diary|ref|index_person_id|index_person_id|4|const|20|
ここで質問なのですが、単純に先ほど作成したインデックスをあてるにはどうすればよいでしょうか、何故インデックステーブルは貼られなかったのでしょうか。
またexplain select * from テーブル名;とshow index from テーブル名;で見れるテーブル名の違いは何でしょうか?
宜しくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。