我在MySQL中有一个查询:
SELECT FIELD1, FIELD2, FIELD3
FROM TABLE1
WHERE
(FIELD3 >= INT1 AND FIELD3 <= INT2)
AND FIELD2 IN (INTEGER_LIST)
如何更快地进行此查询? FIELD2和FIELD3都被索引。甚至,当删除FIELD2上的检查时,没有任何与性能相关的事情。
执行计划信息:
id: 1
select_type: SIMPLE
table: TABLE1
type: ref
possible_keys: FIELD2, FIELD3
key: FIELD2
ref: const
rows: 310000
Extra: using where
答案 0 :(得分:0)
是。 table1(field2, field3, field1)
上的索引应加快此查询的速度:
create index table1_field2_field3_field1 on table1(field2, field3, field1)
答案 1 :(得分:0)
您是否尝试在(FIELD3,FIELD2)上设置复合索引? (参见MySQL中最左边的前缀问题)
设置索引实际上取决于您期望的查询类型: