假设您有一个查询,例如,
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)