如何清空一个非常大的mysql表?

时间:2011-05-08 13:12:49

标签: mysql command-line

每当我尝试使用

清空一个大表时
truncate table the_huge_table;
等等几分钟,我什么也没发现。 另一方面,我不想删除整个表,因为不知道如何重新生成它,所以想知道什么是轻松清空这个怪物的最佳方法?

3 个答案:

答案 0 :(得分:10)

SHOW CREATE TABLE the_huge_table将告诉您如何删除表格时重新创建表格。

另一种选择是克隆表结构:

CREATE TABLE cloned LIKE the_huge_table;
RENAME TABLE the_huge_table TO drop_me, cloned TO the_huge_table;
DROP TABLE drop_me;

答案 1 :(得分:4)

mysqldump --no-data dbname tablename > /tmp/backup.sql
mysql -e 'drop table tablename' dbname
mysql dbname < /tmp/backup.sql

答案 2 :(得分:1)

将结构复制到新的空表中 放下旧桌子 重命名空副本。

CREATE TABLE copy_huge_table LIKE the_huge_table;
DROP TABLE the_huge_table;
RENAME TABLE copy_huge_table TO the_huge_table;