zoukankan      html  css  js  c++  java
  • InnoDB Insert(插入)操作(下)--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= ,确保足够新插入数据的缓冲。

  • 相关阅读:
    Java for LeetCode 229 Majority Element II
    Java for LeetCode 228 Summary Ranges
    Java for LeetCode 227 Basic Calculator II
    Java for LintCode 颜色分类
    Java for LintCode 链表插入排序
    Java for LintCode 颠倒整数
    Java for LintCode 验证二叉查找树
    Java for LeetCode 226 Invert Binary Tree
    Java for LeetCode 225 Implement Stack using Queues
    Java for LeetCode 224 Basic Calculator
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7234228.html
Copyright © 2011-2022 走看看