gpt4 book ai didi

MYSQL:导入大数据库时出现问题(非常慢)

转载 作者:搜寻专家 更新时间:2023-10-30 23:42:54 24 4
gpt4 key购买 nike

我想将一个非常大的 SQL 文件导入 MySql (30GB)。

我已经尝试了 bigdump.php(一些外键错误)脚本和简单的导入。之后我尝试通过命令行执行此操作:

(mysql -u username -p database_name < file.sql)

2 小时后,我得到了 9 GB 的数据库。再过 10 个小时后,我有了一个 10.1 GB 的数据库。

进程似乎正在运行,但速度非常慢(每小时 200000 行/100MB)。

如何解决这个问题?谢谢

最佳答案

这很可能是由于 MySQL 需要检查每一行的键约束。但是由于您(希望如此)已经知道该文件不包含任何约束违规,您可能想要关闭一些检查。 MySQL 有一个关于 Bulk Data Loading for InnoDB Tables 的手册页和 Speed of INSERT Statements .

您通常想要做的是将这些命令添加到您的 .sql 文件的顶部:

SET autocommit=0;
SET unique_checks=0;
SET foreign_key_checks=0;

还有这些到底部:

COMMIT;
SET unique_checks=1;
SET foreign_key_checks=1;

您可以在 MySQL CLI 中执行此操作而无需直接编辑 .sql 文件:

SET autocommit=0;
SET unique_checks=0;
SET foreign_key_checks=0;
SOURCE yourbigfile.sql;
COMMIT;
SET unique_checks=1;
SET foreign_key_checks=1;

请注意,此不会与 bigdump.php 一起使用,因为该脚本不会记住每个 block 之间的这些设置。我不认为 bigdump.php 对于包含外键的转储工作得很好。

关于MYSQL:导入大数据库时出现问题(非常慢),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32882486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com