【问题标题】:Best practice with mysql innodb to rename huge table when table with same name already exist当同名表已经存在时,使用 mysql innodb 重命名大表的最佳实践
【发布时间】:2012-10-12 10:07:46
【问题描述】:

我使用 Mysql 5.5.. + INNODB 和 windows 服务器。

案例(先简单再真实案例):

我有 2 个 1GB 表,名称为 new_carcar 表 1GB。

我每 10 小时用new_car 表替换car 表,而不是手动(通过代码自动) - 快速完成(真实网站数据)很重要。

我读过(说在 innodb 中解决了它的问题):http://www.mysqlperformanceblog.com/2011/02/03/performance-problem-with-innodb-and-drop-table/

解决方案1:

DROP TABLE car;
RENAME TABLE new_car TO car;

解决方案2(最终删除 - 也许它不会阻止在删除期间发生的表访问):

RENAME TABLE car TO temp_car;
RENAME TABLE new_car TO car;
DROP TABLE temp_car;

解决方案3(快速删除表并创建空表然后可能会非常快地删除操作):

TRUNCATE TABLE car;
DROP TABLE car;
RENAME TABLE new_car TO car; 

解决方案4:

RENAME TABLE car TO temp_car;
RENAME TABLE new_car TO car;
TRUNCATE TABLE temp_car;
DROP TABLE temp_car;

哪个解决方案最好,为什么或者请写其他更好的解决方案?

谢谢

【问题讨论】:

  • 搭建开发测试环境并进行测试。
  • See in this link 我们似乎可以更改表名。在做任何事情之前有一个备份副本。
  • 我在提问之前阅读了上面的链接,谢谢
  • 解决方案 2 看起来不错。去吧。更好的是,暂时离开 temp_car 以备不时之需。
  • Ben,solution4 怎么样?(该过程每 10 小时由代码自动完成,而不是手动完成)

标签: mysql sql performance database-performance sqlperformance


【解决方案1】:

我不明白你为什么要 DROP 表。你总是想要那两张桌子而且你会(我假设要重新填满 New_Car 桌子......

RENAME TABLE car TO temp_car;
RENAME TABLE new_car TO car;
TRUNCATE TABLE temp_car;
RENAME TABLE temp_car TO new_car;

【讨论】:

    【解决方案2】:
    RENAME TABLE car TO temp_car, new_car TO car;
    TRUNCATE TABLE temp_car;
    DROP TABLE temp_car;
    

    【讨论】:

      【解决方案3】:

      RENAME TABLE 文档中所述:

      RENAME TABLE 重命名一个或多个表。重命名操作从左到右执行。

      您可以在一个查询中执行多个表重命名,而不是运行多个重命名查询,如下所示:

      RENAME TABLE car TO temp_car, new_car TO car
      DROP TABLE temp_car
      

      尽管请注意,这样的表重命名可能会导致几秒钟的锁定/延迟问题。这取决于您的应用程序是否可以接受。

      【讨论】:

        【解决方案4】:

        使用替换成 大约需要 5 分钟 或者 使用 Load infile 对其进行批量处理

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-01-28
          • 2011-08-09
          • 2015-05-28
          • 1970-01-01
          • 2022-11-10
          • 2010-10-09
          • 2014-06-14
          • 1970-01-01
          相关资源
          最近更新 更多