mysql - 用于备份表并删除记录的 Ruby/Bash 脚本

标签 mysql ruby-on-rails ruby bash

我将所有事务保存在数据库中而不是日志中,但我不希望表变得巨大且缓慢,所以我想创建一个 cron 作业来每隔几个月执行一些操作,例如:

1- 备份硬盘表 2-将所有记录移动到一个新表,例如 table_backup 3-删除该表上的记录

这样,如果插入会花费大量时间来处理巨大的表,该表将每隔几个月被释放

请注意,我正在使用带有事件记录模型的 ruby​​ 来访问数据库表,您认为执行此操作的最佳方法是什么,以及我建议的方法是否有其他选择?

最佳答案

我建议如下:

  1. 冗余 - 根据数据的重要性,您可能需要冗余存储(例如主从数据库设置或 RAID 设备上的数据库)
  2. 备份 - 每小时/每天/每周备份(同样,取决于维护这些备份的重要性、您可以承受的空间大小、您获得的流量,以及整个数据库对数据库的影响是什么。
  3. 截断 - 有一个 cron 任务(查看 whenever gem,这使得这很容易),删除所有早于某个阈值(2 周?)的条目。无需仅仅为了删除旧条目而填充新表。

我相信这些方法是正交的,因此您可以选择适合您的方法,或者首先实现重要的方法。

关于mysql - 用于备份表并删除记录的 Ruby/Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9958834/

相关文章:

ruby-on-rails - 使用 REXML 读取 xml 文件,表示 <UNDEFINED> ... </>

ruby - 如何使 Compass/Sass 编译命令生成可解析的输出

ruby-on-rails - 在 ruby​​ 中迭代数组并使用给定字符串搜索匹配元素

mysql - Mysql NOW() 是确定性的吗

php - MySQL 数据库变更日志(如何制作?)

ruby-on-rails - 找到在 respond_with @jobs 上加载的文件

ruby - 如何在 Shoes 中制作一个简单的文本编辑应用程序?

mysql - 更新查询缓慢(选择快 20 倍或错误的表/查询定义)?

mysql - 状态属性的数据库模型

ruby-on-rails - 雾警告和 AWS : unable to load the 'unf' gem