mysql以最快的方式删除freebsd上的数据库内容?请帮忙 我试图从navicat删除(400,000多行), 但是在一个小时内......只删除了100,000 我没有phpmyadmin
答案 0 :(得分:1)
删除表格中的所有内容:
TRUNCATE TABLE table_you_want_to_nuke
要删除某些行,您有两个选择:
请按以下步骤操作:
CREATE TABLE the_temp_table LIKE current_table
INSERT INTO the_temp_table SELECT * FROM current_table WHERE ...
TRUNCATE TABLE current_table
INSERT INTO current_table SELECT * FROM the_temp_table
current_table
之前删除INSERT INTO
之前的所有索引,然后在INSERT
之后重新创建它们。 MySQL在索引现有数据方面要比在动态索引时快得多。
您当前正在尝试的选项:DELETE FROM your_table WHERE whatever_condition
。您可能需要使用WHERE
条件或LIMIT
将其分解为块,这样您就可以对其进行批处理,而不是永远陷入服务器。
哪个更好/更快取决于很多事情,主要是已删除记录与保留记录的比率以及所涉及的索引数量。与往常一样,仔细测试,然后在实时数据库上执行此操作,因为DELETE
和TRUNCATE
将永久销毁数据。