Лучший способ архивации старых записей mysql

У нас есть приложение Ruby on Rails с БД MySQL (на AWS RDS). Некоторые из наших таблиц имеют большое количество записей ~ 100 миллионов, и это число быстро увеличивается с каждым месяцем. Большинство записей в этих таблицах неактивны и доступны только изредка для некоторых отчетов, к которым пользователи могут получить доступ.

Сейчас мы сталкиваемся с несколькими проблемами:

  • время запроса к этим таблицам значительно увеличилось даже при оптимизации индекса
  • восстановление из резервной копии в случае чрезвычайной ситуации займет очень много времени из-за большого размера таблиц

Наши требования таковы:

  • данные должны сохраняться неограниченное время где-то
  • (быстрый) доступ на чтение к данным
  • нет необходимости в дальнейшем доступе к записи после определенного периода, прошедшего с тех пор Создание записи
  • низкая стоимость

Поэтому мы планировали сделать следующее:

  • после того, как запись стала «неактивной» (это в значительной степени определяется периодом времени, прошедшим с момента создания), мы создадим запись в DynamoDB, отражающую данные в нашей базе данных sql.
  • По прошествии нескольких дней мы удаляем запись sql из базы данных mysql
  • , запись все еще может быть прочитана через dynamodb

Наш вопрос заключался в том, является ли такой подход традиционным и есть ли потенциально лучшие способы достижения того, что мы хотим. Мы будем весьма признательны за любой вклад.

0
задан 2 March 2022 в 21:27
0 ответов

Теги

Похожие вопросы