我有一个名为 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);
请问我能做些什么来减少请求时间?
提前致谢