在按照Rolando的回答:my.ini:https://dba.stackexchange.com/a/83385/191579设置了40GB+文件之后,今天我只在2-3小时内成功地导入了40GB+ sqldump文件。在另一台服务器上;昨天设置了类似的设置并导入了20+GB数据,但是今天仍然在运行,我检查它只能导入不到一半的内部数据(70+百万来自200+百万行)。
这两台服务器的规范如下:
服务器1-在2-3小时内导入40+GB数据:
英特尔Xeon E3 3.00GHz
16
MariaDB 10.3
服务器2-导入20+GB数据仅能在24小时内导入不到一半:
英特尔Xeon E3 3.40GHz
16
MariaDB 10.3
显然,这两台服务器都有几乎相同的规格,但我不明白为什么另一台需要这么长时间才能转储。这两个数据库都不是生产/实时数据库。
我通常选择在本地对大文件进行导入/转储,因为我的印象是这样做要快得多(很明显),但是这个案例让我想到了另一个问题。我目前正在将转储文件放入我的PC中,将其分割成更小的块,在等待的时候,我只是想知道如果我确实通过网络(LAN等)从不同的pc导入,进程将取决于远程服务器pc规范还是本地pc规范?
编辑:我环顾四周发现了这个:https://stackoverflow.com/a/12439368/10910692
使用:
mysqldump --extended-insert=FALSE要注意,多个插入比一个大插入要慢。
我随此设置抛出的20+GB。可能是原因吗?
服务器1和服务器2上的my.ini设置:
[mysqld]
innodb_buffer_pool_size=1024M
innodb_file_per_table=1
skip-host-cache
skip-name-resolve
innodb_log_buffer_size = 256M
innodb_log_file_size = 1G
innodb_write_io_threads = 16
innodb_flush_log_at_trx_commit = 0
innodb_doublewrite=0发布于 2020-03-21 03:08:40
经过几次测试后,我得出结论,服务器本身(我想导入的地方)由于有大量的进程正在进行,所以速度很慢。我认为这从一开始就很明显,但我只是感到沮丧,因为我在这两台机器上设置了相同的设置,并且获得了一个非常不同的基准。
我做的最后一次测试是使用两种方法将200 to的sql转储文件大小导入到目标服务器(服务器2);本地和远程;针对我在本地的另一个服务器单元(服务器1)标记的工作台。很少有更多的细节:
正如我前面提到的,这两台服务器都具有相似的my.ini设置。我没有进一步研究服务器2速度慢的原因,但是在发现这会导致极慢的插入之后,当我放弃转储文件的mysqldump --extended-insert=FALSE设置时,导入执行得更好!另一个明显的原因可能是服务器很忙(提示: CPU负载)。另外,我需要导入的数据实际上是供另一方使用的,但是由于我们和他们之间的时差是6小时(我刚刚发现这一点!),我没有积极地追求这一点。
https://dba.stackexchange.com/questions/261575
复制相似问题