随着MySQL的应用日益广泛,支持事务特性的InnoDB已经成为MySQL的默认存储引擎。和很多关系数据库不同的是,在InnoDB存储引擎中,事务默认是自动提交的,也就是说每条DML语句都会触发commit操作。这一自动提交(autocommit)特性在很多场景下对于性能还是有一定影响的。
最近我们尝试将一个Oracle数据库的数据迁移到MySQL数据库,发现导入时间很长。举个例子来说,其中有一个表包含四千多条数据,插入时间竟然超过了100秒。每插入一条数据,数据库就会自动提交一次,也就是说单这一个表MySQL会commit超过4000次,如果我们关闭自动提交功能,通过程序来控制,只要一次commit就可以了。
那么,如何关闭MySQL的autocommit特性呢?
通常有两种方法:
- 一种是通过set命令修改会话级别或者数据库级别的参数,但是数据库重启后参数会恢复默认值;
- 第二种方法是修改mysql的配置文件my.ini,一劳永逸。
1.测试环境 Windows Server 2008 r2+MySQL Community Server (GPL) 5.7.16
我是在Windows Server 2008 r2环境下进行测试。
点击(此处)折叠或打开
目前
成都创新互联公司已为超过千家的企业提供了网站建设、域名、虚拟空间、
网站托管运营、企业网站设计、
延庆网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
网页名称:Windows下关闭MySQL的自动提交(autocommit)功能-创新互联
本文网址:
http://kswsj.cn/article/cssijc.html