设为首页 加入收藏

TOP

InnoDBInsert(插入)操作(下)--mysql技术内幕
2015-11-21 01:43:26 来源: 作者: 【 】 浏览:0
Tags:InnoDBInsert 插入 操作 --mysql 技术 内幕

接上一篇文章,最后做的那个实验,我是想证明mysql innodb存储引擎,commit操作与flush数据到磁盘之间的关系,当与同事交流之后,他说,你应该把innodb_buffer_size的大小考虑到里面,其实我是有考虑的,在开始的部分就有做过假设,假如buffer大小为1G,数据大小为2G,那么在进行事务插入操作时,势必是要在commit操作之前,将缓存数据进行写入磁盘的吧。

再者而言,接上篇实验,我分别进行了两组,一组是进行了rollback操作,另外一组是进行了commit,发现,rollback的操作时间远远大于commit操作的。是否可以假象为,其实数据已经落盘,只不过在数据页面上,存在一个事务标识符,实现事务的隔离机制,对于其他session不可见。而此时rollback操作就要把数据一条一条的从磁盘中清除,这个速度肯定会比较缓慢,当然这个删除的机制,我还是不太清楚,是重新走一边buffer,还是直接消失掉;而且,在进行了rollback操作之后,数据文件大大小并没有改变,是否可以假象为,曾经分配的物理空间,并没有及时收回,以便下次重新利用。再说commit操作,它是在极短的时间内完成的,有可能的原因就是,这个操作只是把磁盘中数据页上的事务标识信息移除掉,就ok了。好吧,秉着严谨的实验态度,再来进行一次实验。(下班回去再做吧)

innodb_buffer_size= ,确保足够新插入数据的缓冲。

版权声明:本文为博主原创文章,未经博主允许不得转载。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Redis学习笔记---安装 下一篇数据库优化-基准测试(三)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: