【发布时间】:2012-10-12 10:07:46
【问题描述】:
我使用 Mysql 5.5.. + INNODB 和 windows 服务器。
案例(先简单再真实案例):
我有 2 个 1GB 表,名称为 new_car 和 car 表 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