一.背景 在上一篇[MySQL笔记(5)-- SQL执行流程,MySQL体系结构]中讲述了select查询语句在MySQL体系中的运行流程,从连接器开始,到分析器.优化器.执行器等,最后到达存储引擎.那么对于update更新语句来说对应的流程又是怎样的呢,今天我们来探讨下更新跟查询之间的区别. 二.更新语句的执行流程 当我们创建一张表时: create table T(ID int primary key,c int); 如果这张表在创建完后插入了一些数据,现在要对一条数据执行更新操作: upd…
笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> 2) --日志系统,一条SQL查询语句如何执行 MySQL可以恢复到半个月内任意一秒的状态,它的实现和日志系统有关.上一篇中记录了一条查询语句是如何执行的,对于更新语句,这一套流程也是同样会走一遍.与查询流程不一样的是,更新流程还涉及到两个重要的日志模块.redo log(重做日志) 和 binlog(归档日志). redo log: 这里林老师举了一个很好的例子,摘录如下. <孔乙己>中的酒店掌柜有一个粉板,用来记录客人的赊…
一:更新流程 - 对于更新来说,也同样会根据 SQL 的执行流程进行. -  - 连接器 - 连接数据库,具体的不做赘述. - 查询缓存 - 在一个表上有更新的时候,跟这个表有关的查询缓存会失效. - 这也就是我们一般不建议使用查询缓存的原因. - 分析器 - 接下来,分析器会通过词法和语法解析知道这是一条更新语句. - 优化器 - 优化器决定要使用 ID 这个索引. - 执行器 - 然后,执行器负责具体执行,找到这一行,然后更新. - PS - 与查询流程不一样的是,更新流程还涉及两个重要的日…
文章首发于公众号「蝉沐风」,认真写好每一篇文章,欢迎大家关注交流 这是图解MySQL的第2篇文章,这篇文章会通过一条SQL更新语句的执行流程让大家清楚地明白: 什么是InnoDB页?缓存页又是什么?为什么这么设计? 什么是表空间?不同存储引擎的表在文件系统的底层表示上有什么区别? Buffer Pool是什么?为什么需要?有哪些我们需要掌握的细节? MySQL的三种日志文件redo日志.undo日志.binlog分别是什么?为什么需要这么多种类型的日志? 正文开始! 之前我们讲过了一条SQL查询…
前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块.相信你还记得,一条查询语句的执行过程一般是经过连接器.分析器.优化器.执行器等功能模块,最后到达存储引擎. 那么,一条更新语句的执行流程又是怎样的呢? 之前你可能经常听DBA同事说,MySQL可以恢复到半个月内任意一秒的状态,惊叹的同时,你是不是心中也会不免会好奇,这是怎样做到的呢? 我们还是从一个表的一条更新语句说起,下面是这个表的创建语句,这个表有一个主键ID和一个整型字段c: mysql> create table…
前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块.相信你还记得,一条查询语句的执行过程一般是经过连接器.分析器.优化器.执行器等功能模块,最后到达存储引擎. 那么,一条更新语句的执行流程又是怎样的呢? 之前你可能经常听DBA同事说,MySQL可以恢复到半个月内任意一秒的状态,惊叹的同时,你是不是心中也会不免会好奇,这是怎样做到的呢? 我们还是从一个表的一条更新语句说起,下面是这个表的创建语句,这个表有一个主键ID和一个整型字段c: mysql> create table…
2 日志系统:一条sql更新语句是如何执行的? 前面了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块,一条查询语句的执行过程一般是经过连接器.分析器.优化器.执行器等功能模块,最后达到engine. 这里分析一个update语句的流程 mysql> create table T(ID int primary key, c int); 更新语句 mysql> update T set c=c+1 where ID=2; 查询语句的那一套流程,更新语句也是同样会走一遍 执行语句前要先…
<MySQL实战45讲>02 | 日志系统:一条SQL更新语句是如何执行的? 学习记录http://naotu.baidu.com/file/ad320c7a0e031c2d6db7b5acbd9acb57?token=7c55bfaa8fb6201f…
⼀条SQL查询语句是如何执⾏的? ⼤体来说,MySQL 可以分为 Server 层和存储引擎层两部分 Server 层 Server 层包括连接器.查询缓存.分析器.优化器.执⾏器等,涵盖 MySQL 的⼤多数核⼼服务功能,以及所有的内置函数(如⽇期.时间.数学和加密函数等),所有跨存储引擎的功能都在这⼀层实现,⽐如存储过程.触发器.视图等. 存储引擎层 ⽽存储引擎层负责数据的存储和提取.其架构模式是插件式的,⽀持 InnoDB(MySQL 5.5.5版本后默认).MyISAM. Memory…
[数据库] SQL 常用语句之系统语法 1. 获取取数据库服务器上所有数据库的名字 SELECT name FROM master.dbo.sysdatabases 2. 获取取数据库服务器上所有非系统数据库的名字 SELECT [name] FROM master.dbo.sysdatabases ORDER BY [Name] 3. 获取数据库下所有的表名 SELECT name from sys.tables 4. 获取表结构(字段名,属性) SELECT C.name as [字段名],…