如果插入查询看起来像这样,那么在批量插入数据之前使用(用于性能调优) AUTOCOMMIT = 0更好吗?
INSERT INTO SomeTable (column1, column2) VALUES (val1,val2),(val3,val4),...?
发布于 2013-05-15 15:37:14
根据文档,AUTOCOMMIT应该在InnoDB中关闭。
当将数据导入InnoDB时,关闭自动提交模式,因为它对每个插入执行日志刷新到磁盘。将大容量插入到具有自动增量列的表中时,将
innodb_autoinc_lock_mode设置为2,而不是默认值1。
发布于 2013-05-21 16:25:03
你有一个需要注意的交易。
诚然,与INSERT相关的每个autocommit=1都会发生日志刷新。然而,设置autocommit=0是否会产生任何后果?
想想重做日志(ib )吧。更改信息必须存储在某个地方,以便在崩溃后需要回滚插入或启动恢复。
无论哪种方式,都会有一些磁盘I/O需要处理。
另外,考虑一下诺姆b
这些都是事实。让买家小心点。
发布于 2016-08-01 09:09:26
如果innodb_flush_log_at_trx_commit设置为1,则关闭绝对有帮助。
表:
CREATE TABLE tab1
(col1 INT, col2 VARCHAR(20), col3 INT, KEY idx_tab1_col1(col1))ENGINE = INNODB;测试:
结果:
https://dba.stackexchange.com/questions/42704
复制相似问题