可能重复:
Speeding up mysql dumps and imports
mysqldump
速度相当快,但是使用mysql my_database < my_dump_file.sql
加载中型数据库(20-30MB)需要几分钟时间
是否有一些mysql设置可以调整以加快加载速度?有没有更好的方法来加载保存的数据?
我已经尝试将mysqlimport实用程序与基于CSV的转储一起使用。这些加载速度稍快一些,但并不明显。我很想复制原始数据库文件,但这似乎不是一个好主意。
发布于 2009-07-12 23:16:24
发布于 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中找到。
发布于 2009-07-10 22:13:15
确保在转储时使用mysqldump的--opt
选项。这将使用批量插入语法、延迟密钥更新等...
如果您只使用MyISAM tables,则可以安全地复制它们,方法是停止服务器,将其复制到已停止的服务器,然后启动该服务器。
如果您不想停止源站,可以按照如下步骤操作:
但是我很确定当你把它们放到适当的位置时,你的复制到服务器需要停止。
https://stackoverflow.com/questions/1112069
复制相似问题