Как очистить очень большую таблицу MySQL? - PullRequest
4 голосов
/ 08 мая 2011

Всякий раз, когда я пытаюсь очистить большую таблицу, используя

truncate table the_huge_table;

и подожди несколько минут, я ничего не вижу. С другой стороны, я не хочу удалять всю таблицу, потому что не знаю, как ее восстановить, поэтому задаюсь вопросом, каков наилучший способ легко опустошить этого монстра?

Ответы [ 3 ]

10 голосов
/ 08 мая 2011

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;
4 голосов
/ 08 мая 2011
mysqldump --no-data dbname tablename > /tmp/backup.sql
mysql -e 'drop table tablename' dbname
mysql dbname < /tmp/backup.sql
1 голос
/ 08 мая 2011

Скопировать структуру в новую пустую таблицу.
Удалить старую таблицу.
Переименовать пустую копию.

CREATE TABLE copy_huge_table LIKE the_huge_table;
DROP TABLE the_huge_table;
RENAME TABLE copy_huge_table TO the_huge_table;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...