У нас есть приложение Ruby on Rails с БД MySQL (на AWS RDS). Некоторые из наших таблиц имеют большое количество записей ~ 100 миллионов, и это число быстро увеличивается с каждым месяцем. Большинство записей в этих таблицах неактивны и доступны только изредка для некоторых отчетов, к которым пользователи могут получить доступ.
Сейчас мы сталкиваемся с несколькими проблемами:
- время запроса к этим таблицам значительно увеличилось даже при оптимизации индекса
- восстановление из резервной копии в случае чрезвычайной ситуации займет очень много времени из-за большого размера таблиц
Наши требования таковы:
- данные должны сохраняться неограниченное время где-то
- (быстрый) доступ на чтение к данным
- нет необходимости в дальнейшем доступе к записи после определенного периода, прошедшего с тех пор Создание записи
- низкая стоимость
Поэтому мы планировали сделать следующее:
- после того, как запись стала «неактивной» (это в значительной степени определяется периодом времени, прошедшим с момента создания), мы создадим запись в DynamoDB, отражающую данные в нашей базе данных sql.
- По прошествии нескольких дней мы удаляем запись sql из базы данных mysql
- , запись все еще может быть прочитана через dynamodb
Наш вопрос заключался в том, является ли такой подход традиционным и есть ли потенциально лучшие способы достижения того, что мы хотим.
Мы будем весьма признательны за любой вклад.
задан
2 March 2022 в 21:27
Ссылка