这是我的表结构(大约 100 万条记录):
我需要在某些日期选择一些索引,但只有年和月是相关的:
SELECT `index_name`,`results` FROM `mst_ind` WHERE
((`index_name`='MSCI EAFE Mid NR USD' AND MONTH(`date`) = 3 AND YEAR(`date`) = 2003) OR
(`index_name`='MSCI Morocco PR USD' AND MONTH(`date`) = 3 AND YEAR(`date`) = 2003))
AND `time_period`='M1'
它工作正常,但性能很糟糕。我通过探查器运行查询,但它无法建议任何可能的键。
主键包含 index_id、date 和 time_period。
如何优化/改进此查询?
谢谢!
更新:解释报告: