どのインデックスを選択する必要がありますか(Mysql)

表:

CREATE TABLE `table1` (
  `f1` int(11) NOT NULL default '0',
  `f2` int(4) NOT NULL default '0',
  `f3` bigint(20) NOT NULL default '0',
  PRIMARY KEY  (`f1`)
) TYPE=MyISAM

クエリ:

select `f1` from table1 where `f2`=123 またはder by `f3` desc;

私はこのクエリのための “カバーインデックス”を作成したい

ALTER TABLE `table1` ADD INDEX (`f2`,`f3`,`f1`);

または

ALTER TABLE `table1` ADD INDEX (`f2`,`f1`,`f3`);

私はそれを選ぶべきですか?

ベストアンサー

最初の1つ。
MySQLはいずれかのインデックスを使用して、実際のテーブルから読み込むことなく結果セットを取得できます。最初の索引は、行を並べ替える余分な手順を実行する必要がないため、やや効率的です。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です