前言 : 今天本来计划好了和朋友一起出去晒晒太阳,结果他临时有事情,我被活生生的拉到他办公室里,也不知道做些什么,就拿了他办公室里一瓶红酒独饮,喝着好生无聊,突然想起自己从来没写过博客,就尝试的写了这么一篇。 本文简介了一条SQL语句在MYSQL(InnoDB)下的执行过程,算是个小尝试吧。
管理连接,验证权限。简单的扩展一下: 客户端一旦建立连接后,即使中途更换了权限,也不会影响。
key-value 查询缓存对,如果查询语句匹配则直接返回 。简单的扩展一下:如果在某个表上有任意更新,会清空这个表上全部缓存,所以往往弊大于利。MySQL 80 版本将此 "零件"删除。
词法分析,语法分析(也就是对SQL语句的解析)
在SQL语句WHERE后有多个索引时优化器负责决定使用哪个索引,确定执行计划。(这个"零件"如果展开说得要单独得文章展开说明了,如果再有雅兴的话,那下一篇博客详细说明)
这个我认为是有必要多说几句得:我们通过分析器知道你要做什么,通过优化器知道该怎么执行,执行器就开始执行了。我会以一条查询SQL示例
select * from plc_main where policyno = '1'
Server 层自己的日志,你可以叫它归档日志。这个日志记录的是逻辑日志,有两种模式,statement 格式的话是记 sql 语句,row 格式会记录行的内容。是用来做数据恢复的。
redo Log是InnoDB 引擎特有的日志,你可以叫他重做日志,。这个日志是物理日志,记录的是某个数据叶上做了什么修改,不记录更新后的状态。他的出现节省了写磁盘IO成本,也给数据库出现异常时增加了crash-safe能力。
我们一般叫他写缓存,我在这里用一条更新sql示意:
insert into p(id,k)values(id1,k1)
这个见名知意思,这个就是缓冲池了。他的作用就是避免每次访问磁盘,以加速数据的访问。一般每个索引的根节点和热点数据都会在bufferpool存放。
这个是为数据库提供了回滚和多个行版本控制,他记录的是逻辑日志,你可以这样认为:当delete一条记录时,undo log中会记录一条对应的insert记录,反之亦然,当update一条记录时,它记录一条对应相反的update记录。
我在这里很粗略的介绍了下这些"角色"们,其实每一个"角色"都可以单独拿出来单独写一篇博客,如果你感兴趣,可以逐个点拉开去深入。
update plc_main set createdate = sysdate where policyno = '2'
*(在这里把policyno当成了主键索引)至此这一条sql语句结束了,有点虎头蛇尾了,但是整瓶喝完已经晕晕乎乎的写不下去了,朋友说我脸红了, 还给我泡了杯茶 。
溜了溜了,如果想一起交朋友认识的 可以加我微信 : 18800205228 . 拜拜喽
前言 吊打面试官又来啦,今天我们讲讲MySQL索引为什么会失效,很多文章和培训机...
0.新建web项目 首先,在MyEclipse里新建java web项目,项目名为login。此时,项...
Protobuf是什么 Protobuf实际是一套类似Json或者XML的数据传输格式和规范,用于...
文章目录 1.信号的概念 2.通过Ctrl c分析信号 2.1Ctrl c的作用 2.2 signal接口 2...
点赞功能是目前app开发基本的功能 今天我们就来聊聊 点赞、评论、收藏等这些场景...
前言: 几乎所有的大型应用都会有自己的用于跟踪调试的API。因为一旦程序被部署...
数组是有序数据的集合。数组中的元素可以不属于同一个数据类型。用一个统一的数...
速率 速率即数据率、数据传输速率或比特率 意义 单位时间传输比特数 单位 b/s(bp...
在Win10沙盒中,用户可以创建一个临时的桌面环境来运行不信任的软件和浏览可疑网...
本文实例为大家分享了php实现图片压缩处理的具体代码,供大家参考,具体内容如下...