首页  >  问答  >  正文

有没有办法改善 MySQL 导入随时间变慢的性能?

我有一个巨大的 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 一段时间后速度变慢是常见的吗?或者有什么可以进一步改进的地方吗?

P粉969253139P粉969253139288 天前499

全部回复(1)我来回复

  • P粉201448898

    P粉2014488982024-01-06 08:18:50

    导入大量数据时,应禁用以下功能。

    1. 禁用触发器
    2. 禁用索引
    3. 禁用约束或检查
    4. 禁用外键

    因为每次插入时,数据库都会检查插入记录在其他表中的关系。随着桌子变得越来越大,这个过程开始减慢。每次插入期间,数据库还会对该表的索引执行额外的插入操作或运行插入触发器。

    另外,由于MySQL中的事务很弱,所以需要工作,以便commit不是每次插入后都工作,可以使用commit命令,例如每10000条记录插入后一次。

    回复
    0
  • 取消回复