Ускорение запросов GROUP BY, SUM и AVG

Таблица arg_rec содержит 800K строк на моем тестовом компьютере, обычно эта таблица содержит более 15 миллионов строк. Я хочу выполнить следующий запрос:

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, в дополнение к настройке сервера, я также хотел бы узнать больше о других способах решения этой проблемы, таких как:

Is it possible to create a view based on this query and cache the results ? Are there more advanced indexing features to encapsulate the fact that YR, MN, DY, HR, MI, SC correspond to year, month, day etc field of the record timestamp ? Am I better off just duplicating the data using the business layer of my application ?

Ответы на вопрос(1)

Ваш ответ на вопрос