docker compose+mariadb+4gb sql file=数据库导入速度非常慢

d6kp6zgx  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(665)

我们有以下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 .
如果我们尝试将大量的sql转储导入这个db,那么完成这个任务需要花费大量的时间。
转储本身以优化设置转储,因此已经比正常转储“更快”。
在hdd上,导入4gb转储最多需要5小时,而在ssd上,导入4gb转储最多需要55分钟。我读过关于在使用docker时将如此巨大的数据导入mysql的问题。
还有其他人有这个问题吗?你是怎么解决的?

exdqitrt

exdqitrt1#

docker中的数据导入基本上是一个标准化的过程。
导入速度取决于您的ssd/hdd和要导入的转储文件的大小。根据硬盘的io速度,导入可能需要一些时间。
我们花了好几个小时来实现一个进度条,但公平地说,它不值得花时间,因为它的速度不会增加。
我们所做的导入50+gb转储的工作是从物理db文件(直接存储在mariadb/mysql中)生成转储,而不是导入转储。下载50gb包比导入50gb转储要快得多。
这不是最好的方法,因为您不能在这里应用dev设置(docker的entrypoint可以),而且您可能需要公司的sre/devops来提供转储本身,但是值得一试。

相关问题