草庐IT

mysqldump vs select into outfile

coder 2023-10-17 原文

我在 mysql 中使用 select * into outfile 选项将数据备份到制表符分隔格式的文本文件中。我对每个表都调用此语句。

然后我使用load data infile 将每个表的数据导入mysql。

在执行此操作时我还没有做任何锁定或禁用键

现在我面临一些问题:

  1. 虽然它正在备份另一个,但更新和选择越来越慢。
  2. 为大表导入数据需要太多时间。

如何改进方法来解决上述问题?

mysqldump 是一个选项吗?我看到它使用插入语句,所以在尝试之前,我想寻求建议。

在每次“加载数据”之前使用锁定和禁用 key 是否可以提高导入速度?

最佳答案

如果你有很多数据库/表,使用 mysqldump 肯定会容易得多,因为你只需要为每个数据库运行一次(或者甚至为所有数据库运行一次,如果你对你的系统)。此外,它还具有备份表结构的优势(仅使用 select * 无法做到这一点)。

速度可能相似,但最好同时测试两者,看看哪一个最适合您的情况。

有人 here测试了这些选项,事实证明 mysqldump 在他的情况下更快。但同样,YMMV。

如果您关心速度,还可以查看 mysqldump/mysqlimport 组合。作为mentioned here ,它比单独使用 mysqldump 更快。

至于locks和disable keys,我不太确定,所以我会让其他人回答这部分:)

关于mysqldump vs select into outfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15768502/

有关mysqldump vs select into outfile的更多相关文章

随机推荐