【发布时间】:2017-07-20 04:39:44
【问题描述】:
我有一个与我的运行 php 和 mysql 的 API 通信的应用程序。 我想要做的是记录每个用户在我的表中的实体发生的变化。如果用户更改了他们的数据,我可以看到发生的更改。这样,如果他们有问题或不小心删除了某些内容,我可以回去告诉他们实体在一年中不同阶段的样子。
我不需要对差异非常具体,我想做的只是记录插入或更新(因为它在 JSON 正文中表示)。
基本上我现在所做的就是每当我的 API 针对某些路由发生 POST/PUT 时,我只需将 JSON 放入请求正文中,并将其作为发生的事务保存到数据库中的记录中为该用户。
这在早期很棒,但是在数十万条记录之后,JSON 主体很大并且占用了大量空间。我的数据库表是 13GB。查询也需要一段时间才能运行。我截断了它,但在 4 个月内它又增长到了 10GB。这个问题可能只会变得更大。
有没有人可以推荐的方法来记录这个?我可以将请求正文发送到 AWS 上的某个东西或其他一些离线存储或其他地方的另一个数据库吗?也许是平面文件或非关系数据库?这并不是说我真的需要实时数据,但如果我想获得某人的历史,我想知道我可以。
我确实每晚对数据库进行备份,因此另一种方法是我正在考虑完全删除事务日志,而只是让它继续每晚备份。当然,我将无法显示更新/添加实体的日期的历史记录,但至少我总是可以参考一些备份来查看在我进行还原后特定日期给定用户的记录。
有什么想法或建议吗?谢谢!
【问题讨论】:
标签: php mysql backup api-design database-backups