首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL中更新/重新构建表的最佳方法

在MySQL中更新/重新构建表的最佳方法
EN

Stack Overflow用户
提问于 2012-09-22 02:22:01
回答 2查看 247关注 0票数 0

我正在开发一个大型的webapp,它(其中)有一个表格,这个表格是从现有的在线数据集构建的。此数据集可能会更改(尽管可能不会频繁),因此我们的总体计划是每1-2个月更新/重建一次。这一切都将通过Python和SQLAlchemy实现

在处理way应用程序和大型数据库方面经验不足的情况下,最好的方法是什么?从头开始构建数据库将需要5-6个小时,老实说,这是可以接受的停机时间(这是一个科学分析服务器)。当然,另一种选择是并行创建第二个表,然后删除原始表并重命名新表,但这是否存在一致性问题?有没有一种方法可以“实时更新”一个表,或者这里发生崩溃的风险是不值得的(例如,如果你崩溃了,让表处于与真实数据不一致的状态)?

显然,在简单性、安全性和缺少停机时间之间存在权衡,但我只对我的选择感兴趣(找出那些“未知的未知”)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-22 02:29:56

以下是我的建议:

  1. 使用application
  2. Drop备份原始表以不同的名称备份新表
  3. 使用mysqldump
  4. 关闭旧表
  5. 将新表重命名为原始表名称

<代码>H113重新启动应用程序<代码>H214<代码>G215

这应该会产生最小的停机时间,即删除旧表并重命名旧表所需的时间。备份为您提供了安全,以防您搞砸了什么。

票数 1
EN

Stack Overflow用户

发布于 2012-09-22 05:12:33

这个怎么样?

将表old_table重命名为tmp_table,new_table重命名为old_table;

这是new_table之前创建的。重命名是原子的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12536068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档