范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

面试官你说说一条更新SQL的执行过程?

  在上一篇《面试官:你说说一条查询SQL的执行过程?》中描述了Mysql的架构分层,通过解析器、优化器和执行引擎完成一条SQL查询的过程,那这一篇续上继续说明一条更新SQL的执行过程。
  对于一个SQL语句的更新来说,前面的流程都可以说类似的,通过解析器进行语法分析,优化器优化,执行引擎去执行,这个都没有什么问题,重点在于多了一点东西,那就是 redo_log 、undo_log 和binlog 。
  执行流程大致如下:  首先客户端发送请求到服务端,建立连接。 服务端先看下查询缓存,对于更新某张表的SQL,该表的所有查询缓存都失效。 接着来到解析器,进行语法分析,一些系统关键字校验,校验语法是否合规。 然后优化器进行SQL优化,比如怎么选择索引之类,然后生成执行计划。 执行引擎去存储引擎查询需要更新的数据。 存储引擎判断当前缓冲池中是否存在需要更新的数据,存在就直接返回,否则去从磁盘加载数据。 执行引擎调用存储引擎API去更新数据。 存储引擎更新数据,同时写入undo_log、redo_log信息。 执行引擎写binlog,提交事务,流程结束。
  可以看到相比于查询流程,实际上更新多了关于undo_log和redo_log的流程,接下来再具体探讨一下这几个流程的执行过程是什么样子。
  redo_log
  redo_log 按照字面翻译称为重做日志 ,是InnoDB存储引擎特有的,用于保证事务的原子性和持久性。怎么理解呢?简单来说就是保存我们执行的更新语句的记录,如果服务器或者Mysql宕机,通过redo_log可以恢复更新的数据。
  按照上述流程来举例的话,比如 update user set age=20 where id=1 这样的简单更新SQL,我们不管执行引擎怎么拿到的数据,不管是从缓冲池拿的还是磁盘拿到的,这条现在数据都在缓冲池里面,然后去缓冲池的数据把age 改成10。
  缓冲池内存中的数据已经更新好了,那么接下来就该开始写redo_log了,只是redo_log也不是直接写文件的,一般都是这样对吧,直接写的话性能太差了,所以就有redo_log_buffer叫做redo_log缓冲。
  在写redo_log的时候先把数据写到redo_log缓冲区,然后异步写入磁盘,很显然,极端情况下会有丢失数据的可能。
  控制这个刷盘策略的的参数叫做 innodb_flush_log_at_trx_commit 。
  这个参数有3个值:0|1|2,默认的话是1。
  0代表提交事务时不会写入磁盘,这样的话性能当然最好,但是在Mysql宕机的情况会丢失上一秒的事务的数据。
  1代表提交事务一定会进行一次刷盘,同步当然性能最差,但是也最安全。
  2代表写入文件系统的缓存,不进行刷盘。这个选项性能略差于1,Mysql宕机的话对数据没有任何影响,只有在操作系统宕机才会丢失数据,这种情况下默认Mysql每秒会执行一次刷盘。
  使用0或者2虽然提高了性能,但是变相的也丧失了事务的持久性。  undo_log
  重做日志保证了事务的持久性,保证能够在宕机后恢复事务的数据,那么另外一种情况就是事务在需要回滚的时候怎么办?这时候就是undo_log的作用了,它保证了事务的一致性。
  对于undo_log来说,简单理解就是做了逆向操作。
  比如 insert 一条数据,就对应生成delete ,update 语句则生成相反的更新语句,这样做到将数据修改回之前的状态。 binlog
  binlog称为二进制日志,大家都很熟悉,记录了改变数据库的那些SQL语句,对于这里来说,更新语句当然是了。
  通过不同于 redo_log 是独属于存储引擎独有的东西,binlog 则是Mysql本身产生的日志。
  不同于redo_log是物理日志,binlog和undo_log都属于逻辑日志。
  这有什么区别呢?
  简单来说,逻辑日志可以认为就是存储的SQL本身,而物理日志看看redo_log存储的是啥就知道了,关于page_id页ID,offset偏移量啊这些东西,记录的是对页的修改。
  另外物理日志可以保证幂等性,而逻辑日志则不一定能,除非本身SQL就是幂等的。
  上面我们提到了redo_log的刷盘策略,binlog就和它非常类似了,控制参数是 sync_binlog 。
  默认值为0,相当于是 innodb_flush_log_at_trx_commit 的值为2,由文件系统控制,同样如果服务器宕机,binlog丢失,当然我们也可以改成1,就和redo_log的效果是一样,每1次事务提交都同步写入磁盘。 事务
  为了保证写redo_log和binlog的一致性,实际采用了二阶段提交的方式。
  prepare阶段:根据 innodb_flush_log_at_trx_commit 设置的刷盘策略决定是否写入磁盘,标记为prepare状态。
  commit阶段:写入binlog日志,事务标记为提交状态。  总结
  发布主题 br/* 自定义样式,实时生效,浏览器实时缓存 */brbr/* 全局属性br * 页边距 padding: 30px;br * 全文字体 font-family: ptima-Regular;br * 英文换行 word-break: break-all;br */br #nice {br  font-size:16px;br  padding:5px;br  font-family: -apple-system-font,BlinkMacSystemFont,"Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei UI","Microsoft YaHei",Arial,sans-serif;br  color: rgb(51,51,51);br}brbr/*图片下提示*/br#nice figcaption{br  font-size:12px;br}br#nice .imageflow-caption{br  font-size:12px;br}brbr/* 段落,下方未标注标签参数均同此处br * 上边距 margin-top: 5px;br * 下边距 margin-bottom: 5px;br * 行高 line-height: 26px;br * 词间距 word-spacing: 3px;br * 字间距 letter-spacing: 3px;br * 对齐 text-align: left;br * 颜色 color: #3e3e3e;br * 字体大小 font-size: 16px;br * 首行缩进 text-indent: 2em;br */br#nice p {br  font-size:16px;

孟加拉村子被印度包围,村民无路可走,出村就是非法入侵!纪录片这块土地隶属于孟加拉,却在印度的国境之内,村里的人们只要走出村落,就会被当做非法入境,遭到边境警察的殴打,甚至逮捕入狱。两边的政府都不想管他们,找不到工作,上不了学,看不了病,就是菲律宾自由监狱囚犯能自由活动,还能跟老婆孩子一起住!纪录片你见过这样的监狱吗?四周没有围墙,囚犯能够学手艺赚钱,能和家人住独立小院,甚至过得比监狱外的人还好,幸福得不像坐牢,反而像是在度假。这所名叫拉沃西格的监狱,位于菲律宾的巴拉望,是世戴笠故居87门122窗,多个逃生通道,一个地方只戴笠一个人知道关于国民党中的戴笠,对近代史有研究的人一定听过他的名字。戴笠是蒋介石的亲信,为蒋介石掌管着特工这一部分的工作,又因两人是同乡,所以戴笠自从同蒋介石结识后就颇受重用。但是对于戴笠的历戳心抗日战争胜利了,孩子们却嚎啕大哭1945年8月15日,延安上空飞过一架飞机。习惯性躲避飞机的人们突然发现,飞机放下来的不再是炸弹,而是一张张五颜六色的宣传纸。纸上赫然写着这样几个大字抗战胜利了!日本鬼子投降了!一张恒签证批准,孩子暂时不会送福利院!郑爽这回真的凉透了今日张恒发文说自己护照的问题已经办好,可以暂时不用回国,不害怕孩子被送到孤儿院。无论郑爽在这段感情里受到了多大的伤害,小生命都是无罪的。不能因为没有孕育,没有感受到怀胎十月的艰辛,郑爽谈恋爱要谈到鱼死网破!华晨宇谈恋爱要谈到孩子呱呱坠地明星本身就是高危的暴利的行当,赚的钱是最多的,承受的压力也是最大的。导致了他们很多事情选择速食,包括了他们的爱情。郑爽很小的时候就被父母送到外地学习跳舞,父母虽然言语中对于郑爽多有被问INTO1的未来,赞多想成为R1SE一样的存在,周柯宇希望是标杆创造营2021结束已经有一周的时间了,INTO1成团后的精彩依然不断,不仅被爆料出,后续多档综艺的资源,同时各路杂志以及各种代言也是紧随其后。有着大鹅厂做后盾,粉丝们必然不用担心I危险的艺人和高危的艺人经纪公司犀牛娱乐原创文胖部编辑朴芳明星艺人再曝负面新闻。10月25日,音乐人陈令韬的前女友(微博账号他们叫我大花妞)在个人社交平台发长文,称陈令韬在两人恋爱期间出轨偶像明星孟美岐,并公开了优酷人文,继续先行一步犀牛娱乐原创文胖部编辑夏添作为全网最大的文化人物阵地,优酷人文历经9年,已成长为一位朝气蓬勃的青葱少年。在2022优酷精品先鉴会上,优酷人文动漫体育业务总经理孙晓光介绍了优酷人文新双11CNY冬奥会接连来袭,Q4娱乐营销如何把握良机?犀牛娱乐原创文方正编辑朴芳不断变化的大环境正对娱乐营销提出新课题。各平台提前上线大项目,诸多优质综艺在89月集中提前释放,导致今年Q4可投放的综艺IP变得稀少。但另一方面,今年双1吴京沈腾之外,还有谁能扛票房?犀牛娱乐原创文小福编辑朴芳这个国庆档的最大赢家,非吴京莫属。一边是自导自演的我和我的父辈,另一边又是领衔主演的战争题材大片长津湖,在这两部顶级项目的加持下,让吴京的个人票房直接飙升
芭蕾首席老婆费尽心机,女儿和狗现身,严泰雄的错众人来抹娶个好老婆也许会成为某些男人的救世主。韩国演员严泰雄就娶了这样一个八面玲珑的妻子尹慧珍。尹慧珍不仅自己相当有才干,而且出生于演员世家。她的父亲是著名演员尹一峰,同时她还是韩国的戏剧韩国最贵房屋诞生,手握115亿的豪宅,张东健夫妻在顶楼俯视众生张东健和高小英这对夫妻又成了韩国人羡慕的焦点。原因无他,最近因为他们手里握有的房产成了全韩国最贵房屋,是真。赫拉宫殿啊ThePenthhouse。当然,这栋房屋当然不都是巨星夫妻的电视剧绝代双骄今日开机,你更看好哪一版由完美世界影视华策影视及完美建信联合出品的电视剧绝代双骄今日正式举行开机仪式。据悉,该剧将历时半年,横跨横店象山无锡云南宁夏甘肃新疆等地实景拍摄,最大限度的真实呈现原著景色各异独具拿15亿不见孩子,韩国小姐错嫁三星家,50岁的高贤廷说曾有过爱情50岁的女人应该长什么样子?可以高唱我还是青春小少女吗?过度的医美,把自己的小脸蛋拉扯地过于平整,反而会让周边的人看得有些不自在。近日里,演员高贤廷公布了她的杂志硬照花絮。照片中的她曾是韩国小姐,星运不济遇歹人,感恩嫁商人却是一个空心大佬明星池贤宇挑大梁的周末档电视剧绅士与小姐正式播出了。绅士与小姐让池贤宇当上了会长大人,导演没有忘记在电视剧的开局,让池贤宇展示了自己的肌肉,还是很帅气啊!名字有些花俏的绅士与小姐其晒了个寂寞,宋慧乔频繁上传又神隐,美人怕了人们的嘴是时候再次播报宋慧乔妹子的动向了。不久前,宋慧乔与张基龙合作的韩剧现在正在分手时正式杀青,也让宋慧乔完成了今年第一部剧作。现在的韩国电视剧界因为网络平台众多,演员们不必再假装在家散韩国麦当娜52岁了,和弟媳一起扶助严泰雄,她不结婚是有原因的我们的蓝调这部电视剧的阵容太华丽。李秉宪车胜元申敏儿和金宇彬情侣,韩志旼以及寄生虫的女管家李静恩。如今这些大牌演员中还要再加一位,那就是有韩国麦当娜之称的严正花。原本李秉宪韩志旼申又不分手了!李昇基要星途也要美人,李多寅到底有多好?前一阵子李昇基与演员李多寅疑似分手的消息乐坏了一部分希望帅哥分手的粉丝。然而,好梦并不长久,当初呈现的分手证据就相当薄弱,如今两人传出了另一个完全相反的消息好着呢!熟人称,此二位李太端庄!拍过空姐海报,入韩圈就嫁人,刘俊相太会找老婆OK!光姐妹的漂亮三位姐妹与我们说再见了。这一部从今年3月13日就开始播出的韩剧,在今年的9月中旬走完了全部的里程。一共50集,不多也不少,在播出的过程中也没有什么幺蛾子出现,剧组清潭洞贵妇不好当,嫁豪门十年梦碎,女演员带着女儿憔悴的离开近日,韩国演员崔贞允宣布正在离婚。她称自己是一位母亲,也是一名演员,希望能够摆脱清潭洞儿媳妇的刻板印象。娱乐圈明星们的私生活向来是大众茶余饭后的话题。年轻漂亮的女演员嫁入豪门,早已悄悄嫁豪门,结词离曲女主与婆婆住20年,140亿婚房羡慕吗出演了结婚作词,离婚作曲中的史避影之后,女演员朴柱美嫁入豪门的婚姻事实,终于引起了韩国八卦狗仔们的兴趣。这一位48岁的女明星在20年前就嫁入豪门的事实,长达20年都没有被人注意到。