我们每天在服务器上使用这些规范进行大量的数据库导入:
如果将327 is数据库存储在将进行导入的同一服务器上,则导入将花费3分钟,这对此而言非常长。
我的my.cnf:
[mysqld]
character-set-server=latin1
innodb_file_per_table=1
max_allowed_packet=64M
skip-external-locking
innodb_buffer_pool_size=15G
innodb_log_file_size=2G
transaction-isolation=READ-COMMITTED
innodb_autoinc_lock_mode=2
max-connect-errors=100000
max-connections=500我正在使用MySQL不可输入模块导入数据库
什么可以在不改变备份数据库文件的情况下提高导入性能?
发布于 2014-10-01 13:24:40
mysqldump,或.sql文件,这是该模块使用的导入数据库的最不有效的方法(我能想到的唯一效率较低的方法是同时导入和提交每一行)。如果要加快导入过程,则应更改方法。
在MySQL配置中,有几件事情可以加快导入速度,但您将忽略最重要的一件事:并行导入。如果您可以在4-8线程中使用相同的文件进行导入,那么您将不会获得线性性能增长,但它将没有问题地进行扩展。将文件拆分到不同的表/分区中,您将得到几乎线性的加速。使用像翻地机这样的专用工具,您可以获得5-10倍的加速比。使用原始备份工具,您可能会得到几乎无限的加速。
关于配置,这可能是您唯一感兴趣的事情,您可以设置:
innodb_flush_log_at_trx_commit = 2**。这是最重要的建议。**使写入与磁盘不一致,但如果不使用硬件缓存,则会提供很大的改进。它取决于您的磁盘有多慢,但可以给您10倍的加速比。对于正常的操作不安全,许多人使用它作为不重要的数据。innodb_doublewrite = 0。禁止腐败检查。非常不安全,并可能损坏您的数据库,以防崩溃。能让你在你的情况下加速2倍左右。除了导入之外,不要在此模式下运行MySQL。checksums = none (语法在10中可能发生了变化)。禁用页校验和。它不会很有用,因为您的CPU不是瓶颈performance_schema = off- -不确定Maria 10中的默认设置,可能会为导入禁用它而不会出现问题,但不会给您带来很大的加速innodb_buffer_pool_size和innodb_log_file_size在您的设置中已经很大了-way比您的数据还要大--所以在您的情况下不需要更改)还有其他的事情,但是它们需要更改文件,比如之后创建辅助索引。
https://dba.stackexchange.com/questions/78143
复制相似问题