我需要插入数百万行到MySQL数据库(InnoDB引擎)。 我有一个问题时的表有大的尺寸。 几乎所有的时间都花在插入查询。 也许有人知道如何优化呢?
Answer 1:
要导入大批量数据导入InnoDB的:
在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
交易开始后添加的权利:
SET FOREIGN_KEY_CHECKS = 0;
SET UNIQUE_CHECKS = 0;
SET AUTOCOMMIT = 0;
权交易结束前设置:
SET UNIQUE_CHECKS = 1;
SET FOREIGN_KEY_CHECKS = 1;
Answer 2:
如果你谈论了大量的INSERT
语句,看看一些所谓的交易。 我很肯定的是,该做的SQL支持交易大部分(如果不是全部)语言。 他们将加快任何涉及写入数据库。 另外一个好处是,如果出现问题,你可以回滚的变化。
文章来源: How to optimize MySQL to insert millions row?