次のようなクエリがあるとします。
select ID, REGION, START, END from COORD_SYSTEM
where REGION=? and TYPE=? and START >= ? and END <= ?;
このテーブルに約 50,000 行あるとします。REGION 列には 500 個の個別の値があり、TYPE 列には 50 個の個別の値があります。ID 列は主キーです。
テーブルにインデックスを付ける最良の方法は何ですか? >= および <= 記号が原因でカバリング インデックスを達成できるかどうかはよくわかりません。以下にいくつかのオプションを示します。
- COORD_SYSTEM (REGION, TYPE) にインデックスを作成する
- COORD_SYSTEM (REGION、TYPE、START) にインデックスを作成する
- COORD_SYSTEM (REGION、TYPE、START、END) にインデックスを作成する
更新 - 説明文は次のとおりです。
id: 1
select_type: SIMPLE
table: COORD_SYSTEM
type: range
possible_keys: indx_A
key: indx_A
key_len: 50
ref: NULL
rows: 590
Extra: Using where
1 row in set (0.00 sec)