我们有以下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的问题。
还有其他人遇到这个问题吗,您是如何解决的?
答案 0 :(得分:0)
Docker中的数据导入基本上是一个标准化的过程。
导入速度取决于您的SSD / HDD和要导入的转储文件的大小。根据硬盘的IO速度,导入可能需要一些时间。
我们在实施进度条上花费了数小时,但公平地说,它不值得花时间,因为速度也不会随之提高。
我们要导入50 GB以上的Dump,是从物理数据库文件(直接存储在MariaDB / MySQL中)生成一个转储,而不是导入一个Dump。下载50GB软件包比导入50GB转储要快得多。
这不是最好的方法,因为您不能在此处应用Dev-Settings(Docker的入口点确实如此),并且可能需要comp的SRE / DevOps来提供Dump本身,但是值得一试。