База данных - самый крупный компонент платформы Navixy.
Темп роста базы зависит от количества трекеров и планируемого срока хранения данных. База будет неизбежно расти и рано или поздно встанет вопрос об архивации.
В данной статье мы рассмотрим наиболее частые вопросы по архивации данных.
Какие таблицы стоит архивировать?
Приложение Navixy использует 2 БД - одну для бизнес данных и одну для данных трекинга.
Из базы с бизнес данными, основной объем занимают следующие таблицы:
- sensor_data - значения сенсоров устройств
- history - уведомления, сгенерированные платформой
- counters_data - значения одометра/моточасов устройств
Касательно БД с трекинг данными, вне зависимости от конфигурации, вы можете пройтись по каждой таблице и удалить данные, старше определенного времени.
Как архивировать данные?
Вы можете использовать любой доступный/известный вам инструмент или программу.
Мы используем утилиту pt-archiver от Percona.
Утилита дает выбор из 3х опций:
- удаление данных
- экспорт данных в файл
- экспорт данных в отдельную таблицу
Процесс можно конфигурировать и точно настроить под ваши нужды, поэтому, мы рекомендуем ознакомиться с официальной инструкцией перед использованием утилиты.
Освобождение места на диске
Если вы рассматриваете архивацию как способ освобождения места на диске - вам необходимо проверить несколько вещей перед запуском процесса.
Для начала, вам необходимо проверить как хранятся ваши данные. У MySQL есть параметр innodb_file_per_table.
Если данный параметр отключен, все данные будут хранится в файле ibdata1. Данный файл не может уменьшаться в размере и архивация данных не освободит место на диске.
В данном случае, подходящим вариантов будет экспорт данных, переустановка и импорт данных.
Начиная с MySQL 5.7 параметр включен по умолчанию.
Если ваша установка проводилась на версию 5.7 или выше - вы можете архивировать данные, и выполнить запрос OPTIMIZE TABLE для уменьшения занятого места на диске.