我有一个巨大的 mysqldump 文件(~700GB),我想在另一台服务器上恢复它。对于最初的 GB,导入速度相当快,大约为 MB/s,但在一些 GB 的数据之后,速度会下降到 50kb/s 到 200kb/s 之间。
mysqldump 的参数是 --skip-comments --no-create-info --no-autocommit --quick --extended-insert --insert-ignore --compress
,因此已经完成了一些速度改进.
导入是通过pv /file.sql | 完成的mysql -u 用户 DB
我还运行了 mysqltuner 并改进了其中的一些设置。
我想知道:这么大的 mysqldump 一段时间后速度变慢是常见的吗?或者有什么可以进一步改进的地方吗?
导入大量数据时,应禁用以下功能。
因为每次插入时,数据库都会检查插入记录在其他表中的关系。随着桌子变得越来越大,这个过程开始减慢。每次插入期间,数据库还会对该表的索引执行额外的插入操作或运行插入触发器。
另外,由于MySQL中的事务很弱,所以需要工作,以便commit不是每次插入后都工作,可以使用commit命令,例如每10000条记录插入后一次。