如何优化MySQL的插入数百万行?(How to optimize MySQL to insert

2019-06-26 22:49发布

我需要插入数百万行到MySQL数据库(InnoDB引擎)。 我有一个问题时的表有大的尺寸。 几乎所有的时间都花在插入查询。 也许有人知道如何优化呢?

Answer 1:

要导入大批量数据导入InnoDB的:

  1. 在MySQL配置设置

    • innodb_doublewrite = 0
    • innodb_buffer_pool_size = 50%+系统存储器
    • innodb_log_file_size = 512M
    • 登录斌= 0
    • innodb_support_xa = 0
    • 的innodb_flush_log_at_trx_commit = 0
  2. 交易开始后添加的权利:

    SET FOREIGN_KEY_CHECKS = 0;

    SET UNIQUE_CHECKS = 0;

    SET AUTOCOMMIT = 0;

  3. 权交易结束前设置:

    SET UNIQUE_CHECKS = 1;

    SET FOREIGN_KEY_CHECKS = 1;



Answer 2:

如果你谈论了大量的INSERT语句,看看一些所谓的交易。 我很肯定的是,该做的SQL支持交易大部分(如果不是全部)语言。 他们将加快任何涉及写入数据库。 另外一个好处是,如果出现问题,你可以回滚的变化。



文章来源: How to optimize MySQL to insert millions row?