gpt4 book ai didi

mysql - Mysql 删除数据库内容最快的方法是什么?

转载 作者:行者123 更新时间:2023-11-29 00:17:31 24 4
gpt4 key购买 nike

mysql删除freebsd数据库内容最快的方法?请帮忙我试图从 navicat 中删除(400,000 多行),但在一个小时内...只有 100,000 个被删除我没有 phpmyadmin

最佳答案

删除表中的所有内容:

TRUNCATE TABLE table_you_want_to_nuke

要删除某些行,您有两种选择:

  1. 请按照以下步骤操作:

    • 使用 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
    • 要加快此选项的速度,您可能需要在最终 INSERT INTO 之前删除 current_table 中的所有索引,然后在 INSERT 之后重新创建它们>。 MySQL 索引现有数据的速度比动态索引快得多。

  2. 您当前正在尝试的选项:DELETE FROM your_table WHERE whatever_condition。您可能需要使用 WHERE 条件或 LIMIT 将其分成多个 block ,这样您就可以对其进行批处理,而不会永远使服务器停滞不前。

哪个更好/更快取决于很多因素,主要是删除记录与保留记录的比率以及涉及的索引数量。一如既往,在实时数据库上执行此操作之前仔细测试,因为DELETETRUNCATE永久 销毁数据。

关于mysql - Mysql 删除数据库内容最快的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22440620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com