0

我有一个名为 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);

请问我能做些什么来减少请求时间?

提前致谢

4

0 回答 0