加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

一条SQL语句在MySQL中是如何执行的?

发布时间:2019-04-19 00:16:02 所属栏目:编程 来源:木木匠
导读:媒介 最近开始在进修mysql相干常识,本身按照学到的常识点,按照本身的领略清算分享出来,本篇文章会说明下一个sql语句在mysql中的执行流程,包罗sql的查询在mysql内部会怎么流转,sql语句的更新是怎么完成的。在说明之前我会先带着你看看 MySQL 的基本架

假如回收redo log 两阶段提交的方法就纷歧样了,写完binglog后,然后再提交redo log就会防备呈现上述的题目,从而担保了数据的同等性。那么题目来了,有没有一个极度的环境呢?假设redo log 处于预提交状态,binglog也已经写完了,这个时辰产生了非常重启会怎么样呢?这个就要依靠于mysql的处理赏罚机制了,mysql的处理赏罚进程如下:

  • 判定redo log 是否完备,假如判定是完备的,就当即提交。
  • 假如redo log 只是预提交但不是commit状态,这个时辰就会去判定binlog是否完备,假如完备就提交 redo log, 不完备就回滚事宜。

这样就办理了数据同等性的题目。

三、总结

  1. Mysql 首要分为Server曾和引擎层,Server层首要包罗毗连器、查询缓存、说明器、优化器、执行器,同时尚有一个日记模块(binlog),这个日记模块全部执行引擎都可以共用。
  2. 引擎层是插件式的,今朝首要包罗,MyISAM,InnoDB,Memory等。
  3. 查询语句的执行流程如下:权限校验(假如掷中缓存)---》查询缓存---》说明器---》优化器---》权限校验---》执行器---》引擎
  4. 更新语句执行流程如下:说明器----》权限校验----》执行器---》引擎---redo log(prepare 状态---》binlog---》redo log(commit状态)

【编辑保举】

  1. 1000行MySQL进修条记,不怕你不会,就怕你不学!
  2. 用Select * 举办SQL查询的七宗罪
  3. 记着:永久不要在MySQL中行使UTF-8
  4. 对付MySQL你必必要相识的锁常识
【责任编辑:未丽燕 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读