私の質問は、インデックスと主キーについてです。インデックスと主キー
のは、我々が持っているとしましょう。このようなテーブル:
select * from demo_table where to="" and media="" order by id desc limit 0,1;
と:
demo_table
| id | int(11) | NO | PRI | |
| subject | varchar(255) | YES | | NULL |
| body | text | YES | | NULL |
| to | varchar(255) | YES | MUL | NULL |
| from | varchar(255) | YES | MUL | NULL |
| media | varchar(255) | YES | | NULL |
私は/「メディア」カップル「から」特定の最後の行を探し、クエリを持っていますテーブルのインデックスを作成したいと思います。
CREATE INDEX to_media on demo_table(media,to);
またはこのような:
CREATE INDEX to_media on demo_table(id,media,to);
IDがソートされていることを見て、私はこのようなインデックスが作成すべきか? InnoDBは、他の賢明MYSAM
のために行くために挿入/更新ステートメントのその大規模な、よりに行く場合は、そのは、要件のような... に依存
あなたの問題は何であり、あなたの質問は何ですか? – pltvs
MyISAMまたはInnoDBテーブルですか? InnoDBでは、それを指定しなくても、PKは常にインデックスの最初のカラムになります。 – Mchl
nullを許すような数の列に注意する必要があります。索引付けVARCHAR(255)列は、必ずしも良いアイデアではありません(必ずしも良い考えではありません)。クエリオプティマイザで使用される3つの部分のインデックスを取得しますか?私はあなたがすると確信していません。 2部構成のインデックスを使用するかもしれませんが、インデックスの存在を保証するのに十分なインデックスを使用するかどうかはわかりません。 –