0

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

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

4

1 回答 1

0

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

RENAME TABLE students TO students_secondary_temp, students_secondary TO students, students_secondary_temp TO students_secondary;
于 2012-10-02T01:46:03.257 回答