Docker-compose + MariaDB + 4GB SQL File =极其缓慢的数据库导入

时间:2018-07-24 12:37:02

标签: mysql docker mariadb

我们有以下MySQL节点:

mysql:
    build: ./docker/builds/mysql
    ports:
      - "3306:3306"
    environment:
      - MYSQL_USER=root
      - MYSQL_PASSWORD=password
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_DATABASE=password
    volumes:
      - ./docker/data/ps_de:/data
      - ./docker/builds/mysql/my.cnf:/etc/mysql/my.cnf
      - ./docker/mysql:/var/lib/mysql_shared
    networks:
      vpcbr:
        ipv4_address: 172.55.0.20

基本上可以用FROM mariadb:latest拉MariaDB。

如果我们尝试将巨大的SQL转储导入此数据库,则需要大量时间才能完成此任务。

转储本身使用优化的设置进行转储,因此已经比普通转储“更快”了。

在HDD上,最多需要5个小时才能导入4GB转储,而在SSD上,仍可能需要55分钟。我已经读过有关在使用Docker时将如此巨大的数据导入MySQL的问题。

还有其他人遇到这个问题吗,您是如何解决的?

1 个答案:

答案 0 :(得分:0)

Docker中的数据导入基本上是一个标准化的过程。

导入速度取决于您的SSD / HDD和要导入的转储文件的大小。根据硬盘的IO速度,导入可能需要一些时间。

我们在实施进度条上花费了数小时,但公平地说,它不值得花时间,因为速度也不会随之提高。

我们要导入50 GB以上的Dump,是从物理数据库文件(直接存储在MariaDB / MySQL中)生成一个转储,而不是导入一个Dump。下载50GB软件包比导入50GB转储要快得多。

这不是最好的方法,因为您不能在此处应用Dev-Settings(Docker的入口点确实如此),并且可能需要comp的SRE / DevOps来提供Dump本身,但是值得一试。