【问题标题】:Rails - Hot Swap TablesRails - 热插拔表
【发布时间】:2012-09-27 08:23:42
【问题描述】:

我每天都从外部来源获得一张桌子的转储(让学生们留在桌子上)。为了减少表被截断并使用新数据更新时的停机时间,我计划维护该表的两个副本(students_1 和 students_2)。 这两个都需要每天交替使用学生模型进行映射。因此,如果今天我使用来自 students_1 的数据,明天,一旦将数据输入到 students_2,我就需要无缝切换到那个数据。

所以我的问题是 1)这种方法足够好还是有更好的方法? 2)对于热交换表,是否可以只维护一个指示当前正在使用的表的文件,然后通过读取该特定文件的方法设置_table_name?有没有更优雅的解决方案?

【问题讨论】:

    标签: mysql ruby-on-rails hotswap


    【解决方案1】:

    您可以将其作为数据加载策略的一部分,我不会弄乱存储表名或使用非标准表名。数据加载完成后,改为执行表重命名命令,它是原子完成的,不应中断您的应用程序。

    RENAME TABLE students TO students_secondary_temp, students_secondary TO students, students_secondary_temp TO students_secondary;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-19
      • 1970-01-01
      • 2023-03-15
      相关资源
      最近更新 更多