У меня есть таблица MySQL, в которой хранятся данные в реальном времени с разных устройств. Данные записываются каждые 20 секунд. таблица выглядит следующим образом:Prune mysql table - записи усреднения
report_dt device value1 value2
2015-10-16 10:32:15 solar 34.4 67.8
2015-10-16 10:32:15 grid 56.9 23.5
2015-10-16 10:32:35 solar 45.6 34.3
запросов, чтобы получить записанные значения в устройстве довольно существенны CPU. У меня есть (report_dt, device) в качестве первичного ключа. Кроме того, через несколько дней мне больше не нужны 20-секундные данные, а всего лишь 10-минутное среднее.
Так либо же настройки таблицы или таблицы для каждого устройства будет удовлетворительным, с этим содержимым:
report_dt device value1
2015-10-16 10:00:00 solar avg(value1 over 10 mins)
2015-10-16 10:10:10 grid avg(value1 over 10 mins)
2015-10-16 10:20:20 solar avg(value1 over 10 mins)
Идея заключается в том, чтобы выполнить действие обрезку один раз каждые 24 часа.
Причина в том, что данные, содержащие средние значения, должны быть быстро восстановлены. И поскольку данные за 20-секундный интервал чрезвычайно колеблются, я должен использовать усреднение или данные трудно оценить.
Я мог бы сделать это в приложении. Получите среднее значение в течение 10 минут с интервалом в 10 минут и запишите его обратно в другую таблицу или разные таблицы, по одному для каждого устройства.
Но возможно ли что-то также с функцией базы данных?