SQL - 请求很长 - 我应该创建哪个索引?

时间:2013-06-12 06:34:01

标签: mysql sql indexing

我有一个名为eod的表,行超过1,5M,并且有一个示例。 (我正在使用MySQL)

| eod_id | company_symbol |    date    | open  | close | high  |  low  | volume |
|      1 |            AAA | 01-01-2000 | 40.00 | 42.00 | 43.00 | 39.00 | 100000 |

我想要这样做,但需要4秒以上的时间:

SELECT company_symbol,
  COUNT(CASE WHEN CLOSE < OPEN THEN 1 END) AS 'Green Days',
  COUNT(CASE WHEN OPEN < CLOSE THEN 1 END) AS 'Red Days',
  COUNT(volume) AS 'Volume'
FROM eod
GROUP BY company_symbol;

这是解释的结果:

id : 1
select_type : SIMPLE
table : eod
type : index
possible_keys : NULL
key : eos_cs_date
key_len : 57
ref : NULL
rows : 1536743

我已经为其他请求创建了这两个索引:

create index eod_date_close on eod(date, close);
create index eod_cs_date on eod(company_symbol, date);

我可以做些什么来减少请求时间?

提前致谢

0 个答案:

没有答案