2
表arg_rec在我的測試機器上包含800K行,通常這個表將保存超過15M行。我想運行以下查詢:加快GROUP BY,SUM和AVG查詢
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對應記錄時間戳的年,月,日等字段的事實?
- 我最好只使用我的應用程序的業務層複製數據?
通過使用適當的索引從10分鐘下降到0.7秒。 – klonq 2012-07-24 15:37:45
連接按順序排列在哪裏? – 2013-11-15 11:08:20
可以將聯接寫爲where子句查詢。因此,連接首先根據索引序列,然後按順序依次選擇列。 – Omesh 2013-11-19 12:05:25