В приложении нашей компании мы собираем статистические данные с наших серверов (загрузка, использование диска и т. Д.). Поскольку существует огромное количество данных, и нам не нужны все данные постоянно, у нас была процедура «сжатия», которая берет необработанные данные и вычисляет мин. Максимальное и среднее для ряда точек данных, сохраните эти новые значения в одной таблице и удалите старые через несколько недель.
Теперь передо мной стоит переписать эту подпрограмму сжатия, и новая подпрограмма должна хранить все несжатые данные, которые мы имеем в течение одного года, в одной таблице и «сжатые» данные в другой таблице. Сейчас меня больше всего беспокоит то, как обрабатывать данные, которые постоянно записываются в базу данных, и использовать ли «таблицу транзакций» (мой собственный термин, так как я не могу придумать лучшего, я не говорю о коммите / откат транзакции).
На данный момент наши сборщики данных вставляют всю информацию в таблицу с именем ovak_result
, и сжатые данные заканчиваются в ovak_resultcompressed
. Но есть ли какие-то конкретные преимущества или недостатки в создании таблицы с именем ovak_resultuncompressed
и использовании ovak_result
в качестве «временного хранилища»? ovak_result
будет минимальным, что будет хорошо для процедуры сжатия, но мне нужно будет постоянно перетасовывать все данные из одной таблицы в другую, и в ovak_result
.
будет происходить постоянное чтение, запись и удаление.
Есть ли в MySQL механизмы для обработки подобных вещей?
( Обратите внимание: Мы говорим здесь о довольно больших наборах данных (около 100 миллионов строк в несжатой таблице и около 1-10 миллионов строк в сжатой таблице). Кроме того, я могу сделать довольно много что мне нужно, как с программными, так и с аппаратными конфигурациями, так что если у вас есть какие-либо советы или идеи, касающиеся конфигурации MySQL или настройки оборудования, просто внесите их.)