首页 > 数据库 >MySQL写入SQL整个执行流程

MySQL写入SQL整个执行流程

时间:2022-09-23 17:47:26浏览次数:58  
标签:MySQL 写入 提交 SQL 磁盘 日志 redo

innodb存储引擎中一条sql写入的详细流程

 

    第0步:会先去看缓冲区有没有这条数据,如果有就不进行缓存,直接进入第三步。   第1步:会将要修改的那一行数据所在的一整页加载到缓冲池Buffer Pool中   第2步:将旧值写入undo日志中,便于回滚以及mvcc机制的运作   第3步:将Buffer Pool中的数据更新为新的数据。   第4步:写入redo日志缓冲池,redo日志的内容实际和binlog差不多,但是作用不同   // 这一步之前都是在缓存中进行的,十分的高效。下面的需要和磁盘交互了。 至于什么时候刷新buffer log到redo log日志,有innodb_flush_log_at_trx_commit参数可以控制 同时innodb写入磁盘用了两段提交。具体可看:MySQL两阶段提交   第5步:准备提交事务前,将redo日志写入磁盘   第6步:准备提交日志前,将binlog日志写入磁盘   第7步:将commit标记写到redo日志中,事务提交完成。该操作时为了保证事务提交后redo和binlog数据一致性   第8步:将缓冲区的数据写入磁盘,注意这里的写入不是及时写入的,而是随机的。  
 

标签:MySQL,写入,提交,SQL,磁盘,日志,redo
From: https://www.cnblogs.com/wenbochang/p/16723545.html

相关文章

  • MySQL主从复制
      mysql支持两种复制:1:一种为语句复制。好处是:简单,不会占用很多宽带和IO。坏处是:同一条SQL主从执行的时间不同。或者一些时间戳,存储过程,触发器可能都会有问题。更新......
  • MySQL两阶段提交
    binlog binlog是MySQLServer层的日志,而不是存储引擎自带的日志,它记录了所有的DDL和DML(不包含数据查询语句)语句,而且是以事件形式记录,还包含语句所执行的消耗的......
  • PostgreSQL 视图练习
    练习来源于《SQL基础教程(第2版)》5.1创建初满足下述三个条件的视图(视图名称为ViewPractice5_1)shop=#createviewViewPractice5_1shop-#asshop-#selectproduct_ty......
  • 大数据(Flink)—数据写入数据库篇
    Flink写入mysql的几种方式,废话不多说直接上代码:相关jar包<dependency><groupId>org.apache.flink</groupId><artifactId>flink-co......
  • 编程语言界的丐帮 C#.NET FRAMEWORK 4.6 EF 连接MYSQL
    1.nuget引用 EntityFramework、和 MySql.Data.EntityFramework。  MySql.Data这个库视情况。2.新建实体类:usingSystem;usingSystem.ComponentModel.DataAnnot......
  • sql 常用语句
    常用sql语句1、建表createcreatetabletable_name(column_namedatatype[null|notnull],column_namedatatype[nu......
  • MySQL面试题
    目录Count(*),Count(1),Count(字段)哪个性能更高?Count(*),Count(1),Count(字段)哪个性能更高?count的作用统计符合查询条件的记录中,函数指定的参数不为NULL的记录有多......
  • Centos7设置postgresql数据库开机自启动
    前言PostgreSQL的开机自启动脚本位于PostgreSQL源码目录的contrib/start-scripts路径下如果不知道具体的路径,可以用find命令进行查找。命令如下:[root@admin~]#find/-......
  • JavaWeb--MySQL约束、数据库设计、多表查询、事务--2022年9月22日
    第一节  约束1、概念A、约束是什么约束是作用于表中列上的规则,用于限制加入表的数据约束的存在保证了数据库中数据的正确性、......
  • Kettle 添加Mysql驱动后仍提示连接错误
    错误连接数据库[kettle_mysql]:org.pentaho.di.core.exception.KettleDatabaseException:ErroroccurredwhiletryingtoconnecttothedatabaseDriverclass'o......