gpt4 book ai didi

MYSQL 插入 GB 大小的巨大 SQL 文件

转载 作者:太空狗 更新时间:2023-10-29 11:45:29 24 4
gpt4 key购买 nike

我正在尝试创建维基百科数据库副本(大约 50GB),但遇到最大的 SQL 文件问题。

我使用 linux 拆分实用程序将大小为 GB 的文件拆分为 300 MB 的 block 。例如

split -d -l 50 ../enwiki-20070908-page page.input.

平均 300MB 的文件在我的服务器上需要 3 个小时。 我有 ubuntu 12.04 服务器操作系统和 Mysql 5.5 服务器。

我正在尝试如下:

mysql -u username -ppassword database < category.sql

注意:这些文件由插入语句组成,不是 CSV 文件。

维基百科提供可供下载的数据库转储,因此每个人都可以创建维基百科的副本。您可以在此处找到示例文件:Wikipedia Dumps

我认为导入速度很慢,因为我的 MySQL 服务器的设置,但我不知道应该更改什么。我在一台配备不错的处理器和 2GB RAM 的机器上使用标准的 Ubuntu MySQL 配置。有人可以帮我为我的系统配置合适的配置吗?

我尝试将 innodb_buffer_pool_size 设置为 1GB,但没有成功。

最佳答案

由于您的内存不足 50GB(因此您无法在内存中缓冲整个数据库),瓶颈是磁盘子系统的写入速度。

加速导入的技巧:

  • MyISAM 不是事务性的,因此在单线程插入中要快得多。尝试加载到 MyISAM,然后 ALTER 表到 INNODB
    • 使用 ALTER TABLE .. DISABLE KEYS 避免逐行更新索引(仅限 MyISAM)
    • bulk_insert_buffer_size 设置为高于您的插入大小(仅限 MyISAM)
    • 设置 unique_checks = 0 以便不检查唯一约束。

有关更多信息,请参阅 Bulk Data Loading for InnoDB Tables in MySQL Manual .

注意:如果原始表有外键约束,使用 MyISAM 作为中间格式不是一个好主意。

关于MYSQL 插入 GB 大小的巨大 SQL 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18960097/

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