首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有更快的加载mysqldump的方法?

有没有更快的加载mysqldump的方法?
EN

Stack Overflow用户
提问于 2009-07-10 21:26:20
回答 6查看 40.1K关注 0票数 19

可能重复:

Speeding up mysql dumps and imports

mysqldump速度相当快,但是使用mysql my_database < my_dump_file.sql加载中型数据库(20-30MB)需要几分钟时间

是否有一些mysql设置可以调整以加快加载速度?有没有更好的方法来加载保存的数据?

我已经尝试将mysqlimport实用程序与基于CSV的转储一起使用。这些加载速度稍快一些,但并不明显。我很想复制原始数据库文件,但这似乎不是一个好主意。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-07-12 23:16:24

票数 6
EN

Stack Overflow用户

发布于 2011-12-02 02:11:14

假设您使用的是InnoDB...

我的情况是,有一堆现有的mysqldump输出文件,我希望在合理的时间内导入这些文件。这些表(每个文件一个)大约500MB,每个表包含大约5,000,000行数据。使用以下参数,我能够将插入时间从32分钟减少到3分钟以下。

innodb_flush_log_at_trx_commit =2

innodb_log_file_size = 256M

innodb_flush_method = O_DIRECT

您还需要有一个相当大的innodb_buffer_pool_size设置。

因为我的插入是一次性的,所以后来我恢复了设置。如果你打算长期使用它们,确保你知道它们在做什么。

我找到了在Cedric Nilly's blog上使用这些设置的建议,每个设置的详细解释都可以在MySQL documentation中找到。

票数 30
EN

Stack Overflow用户

发布于 2009-07-10 22:13:15

确保在转储时使用mysqldump的--opt选项。这将使用批量插入语法、延迟密钥更新等...

如果您只使用MyISAM tables,则可以安全地复制它们,方法是停止服务器,将其复制到已停止的服务器,然后启动该服务器。

如果您不想停止源站,可以按照如下步骤操作:

  1. 获取所有表的读锁定
  2. 刷新所有表
  3. 复制文件
  4. 解锁表

但是我很确定当你把它们放到适当的位置时,你的复制到服务器需要停止。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1112069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档