标签: mysql
我有10 GB的SQL文件,72个表中有数百万行。我的存储引擎是 innodb 。
我创建了包含所有必需表的数据库,并在MySQL提示符中发出以下命令:
mysql> source path/to/my/sqlfile.sql
它会运行得很好,直到大约10%的方式。 它会快速启动,几分钟后或每个插入语句减慢到3秒,并且每次插入时减慢到10秒。
它已经运行了三天,30%的数据已经恢复。
我无法理解为什么这么慢?
答案 0 :(得分:2)
通过禁用外键检查来加速负载来启动负载是一个好主意:
mysql> SET foreign_key_checks = 0; mysql> SOURCE dump_file_name; mysql> SET foreign_key_checks = 1;
这是manual建议使加载更容易(表格不需要按顺序加载)和更快(插入行时不验证外键)。
此外,您可能还要禁用UNIQUE_CHECKS(SET UNIQUE_CHECKS=0)。
SET UNIQUE_CHECKS=0
如果没有看到DDL和数据,进一步优化是相当困难的。有几个options you could try。