有没有办法改善 MySQL 导入随时间变慢的性能?
P粉969253139
P粉969253139 2024-01-05 09:41:52
0
1
579

我有一个巨大的 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粉969253139
P粉969253139

全部回复(1)
P粉201448898

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

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板