我将所有事务保存在数据库中而不是日志中,但我不希望表变得巨大且缓慢,所以我想创建一个 cron 作业来每隔几个月执行一些操作,例如:
1- 备份硬盘表 2-将所有记录移动到一个新表,例如 table_backup 3-删除该表上的记录
这样,如果插入会花费大量时间来处理巨大的表,该表将每隔几个月被释放
请注意,我正在使用带有事件记录模型的 ruby 来访问数据库表,您认为执行此操作的最佳方法是什么,以及我建议的方法是否有其他选择?
最佳答案
我建议如下:
- 冗余 - 根据数据的重要性,您可能需要冗余存储(例如主从数据库设置或 RAID 设备上的数据库)
- 备份 - 每小时/每天/每周备份(同样,取决于维护这些备份的重要性、您可以承受的空间大小、您获得的流量,以及整个数据库对数据库的影响是什么。
- 截断 - 有一个 cron 任务(查看
whenever
gem,这使得这很容易),删除所有早于某个阈值(2 周?)的条目。无需仅仅为了删除旧条目而填充新表。
我相信这些方法是正交的,因此您可以选择适合您的方法,或者首先实现重要的方法。
关于mysql - 用于备份表并删除记录的 Ruby/Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9958834/