有没有办法改善 MySQL 导入随时间变慢的性能?
P粉969253139
P粉969253139 2024-01-05 09:41:52
[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粉969253139
P粉969253139

全部回复(1)
P粉201448898

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

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号