gpt4 book ai didi

MySQL克隆一个表,修剪一些数据,然后热交换它们的名称

转载 作者:行者123 更新时间:2023-11-29 09:18:03 24 4
gpt4 key购买 nike

我们有一个 800 万行的 MySQL 表。我们想要从中删除大约 200 万行,删除一些过时的索引并添加新索引。为了实现几乎没有停机时间,我们的计划是创建表的克隆(并锁定原始表),运行脚本(Ruby)来修剪我们不再需要的数据,最后添加新索引。然后我们将在网络应用程序上放置维护页面,交换它们的名称(通过重命名表)并重新启动应用程序。

这是实现最终结果的最佳方式吗?以前有过类似经历的人还有其他提示/建议吗?克隆表的最佳方法是什么( super 酷的 secret mysql cmd)?批量删除行的最佳/最快方法?

最佳答案

  1. 所有引用都使用 View ,而不是直接从 old_table 读取
  2. 创建新表
  3. 选择想要的记录到new_table中,不要带上要删除的记录
  4. 索引new_table
  5. 更新 View ,将 old_table 引用替换为 new_table
  6. 重命名old_table

在需要时处理 old_table。

真正的问题是转换过程中的新数据,这通常意味着停机。希望您可以禁用添加数据的功能,而不是关闭整个网站。

关于MySQL克隆一个表,修剪一些数据,然后热交换它们的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3451729/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com