【发布时间】:2012-07-24 12:58:10
【问题描述】:
在我的测试机器上,表 arg_rec 包含 800K 行,通常该表将包含超过 15M 行。我想运行以下查询:
SELECT STE_ID, PNT_NO, YR, MN, AVG(AVR_WS) AS AVR_WS, SUM(AVR_PW) FROM arg_rec GROUP BY STE_ID, PNT_NO, YR, MN;
此查询根据风力涡轮机数据提供每日平均风速和总功率。在我的测试机器上,这个查询在执行 10 分钟后超时,在 STE_ID、PNT_NO、YR、MN 上的组合索引只是主键列的一个子集。如果没有索引,查询将在几分钟后完成。
我正在运行几乎所有的 MySQL 安装,除了调整服务器之外,我还想了解更多关于处理此问题的其他方法,例如:
- 是否可以基于此查询创建视图并缓存结果?
- 是否有更高级的索引功能来封装 YR、MN、DY、HR、MI、SC 对应记录时间戳的年、月、日等字段?
- 使用应用程序的业务层复制数据是否更好?
【问题讨论】:
标签: mysql performance