• 初识mysql的innodb存储引擎


      上一篇讲到sql提交到存储引擎了,由存储引擎操作内存或磁盘中的数据。

          

          这一篇就开始将接下来的innodb存储引擎是如何处理数据的。

          需要执行一条sql: update name=lisi where id =1;

          第一步:查询数据

          innodb首先需要定位到这条数据所在的位置,如果内存中有则直接定位,没有则需要到磁盘中查询出这一条数据,缓存到内存中。

          

            第二步:写入undo log日志

            查询到id=1这一行数据到name为zhangsan,将zhangsan这个旧值写入undo log日志中,以防后面回滚。

           

           第三步:更新内存中的数据

        直接更新内存中的数据,而不是硬盘中的数据。

       第四步:写入redo buffer

                将修改记录写入redo buffer中。

        第五步:写入redo log日志中

     准备提交事务,将redo buffer中的数据写入到redo log日志。

       第六步:写入binlog日志

         第七步:写入binlog

                这一步将binlog文件位置和commit标识写入redo log文件中,表示事务提交成功。

        第八步:写入磁盘文件

        磁盘中id=1的这条数据name还是zhangsan的,将磁盘数据改为我们修改后的数据lisi,至此数据更新完成。

  • 相关阅读:
    ROW_NUMBER()用法(转)
    winform MD5值生成
    VC使用“添加方法向导”添加调度映射方法“
    MyGeneration配置说明
    dataGridView取消自动生成列
    PHP魔术常量(magic constant)
    Eclipse添加DTD文件实现xml的自动提示功能
    Google:5个常见的SEO错误和6个SEO好主意
    PHP检查PEAR是否工作
    手把手教你在ubuntu上安装LAMP
  • 原文地址:https://www.cnblogs.com/ITyannic/p/12235299.html
Copyright © 2020-2023  润新知