首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入327 to数据库3分钟

导入327 to数据库3分钟
EN

Database Administration用户
提问于 2014-10-01 12:19:52
回答 1查看 363关注 0票数 2

我们每天在服务器上使用这些规范进行大量的数据库导入:

  • Xeon E5-1620v2 4c/8t @ 3,8Ghz
  • 32 Go DDR3 ECC 1600 ECC
  • 硬盘2x3转SATA3
  • MariaDB 10.14与XtraDB

如果将327 is数据库存储在将进行导入的同一服务器上,则导入将花费3分钟,这对此而言非常长。

我的my.cnf

代码语言:javascript
复制
[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不可输入模块导入数据库

什么可以在不改变备份数据库文件的情况下提高导入性能?

EN

回答 1

Database Administration用户

回答已采纳

发布于 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_sizeinnodb_log_file_size在您的设置中已经很大了-way比您的数据还要大--所以在您的情况下不需要更改)

还有其他的事情,但是它们需要更改文件,比如之后创建辅助索引。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/78143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档