我们有一个带有 MySQL DB(在 AWS RDS 上)的 Ruby on Rails 应用程序。我们的一些表有大约 1 亿条记录,而且这个数字每个月都在迅速增加。这些表中的大多数记录都处于非活动状态,并且仅在用户可以访问的某些报表中偶尔访问。
我们现在面临几个问题:
- 即使使用索引优化,这些表的查询时间也显着增加
- 由于表很大,在紧急情况下从备份恢复需要很长时间
我们的要求是:
- 数据需要无限期地保存在某个地方
- (快速)读取数据
- 自创建记录以来经过一段时间后无需进一步的写访问
- 低成本
因此,我们计划执行以下操作:
- 在一条记录“不活动”之后(这主要取决于自创建以来经过的一段时间),我们将在 DynamoDB 中创建一条记录,以镜像我们 sql db 中的数据。
- 几天后,我们从 mysql db 中删除 sql 记录
- 然后仍然可以通过 dynamodb 读取记录
我们的问题是这种方法是否是传统的,是否有更好的方法来实现我们想要的。任何输入将不胜感激。