MySQL 笔记整理(1) --基础架构,一条SQL查询语句如何执行
最近在学习林晓斌(丁奇)老师的《MySQL实战45讲》,受益匪浅,做一些笔记整理一下,帮助学习。如果有小伙伴感兴趣的话推荐原版课程,很不错。 1) --基础架构,一条SQL查询语句如何执行 MySQL大体来说可以分为 Server层 和 存储引擎层 两部分. Server层 包括:连接器,查询缓存,分析器,优化器,执行器等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期,时间,数学和加密函数等),所有跨存储引擎的功能在这一层实现,比如实现存储过程,触发器,视图等。 存储引擎层 :负责数据的存储和提取,其架构模式是插件式的,支持如InnoDB,MyISAM,Memory等多个存储引擎,现在最常用的存储引擎是InnoDB,它从MySQL5.5.5版本开始成为了默认存储引擎。 不同的存储引擎共用一个Server层。 连接器:连接器负责跟客户端建立连接,获取权限,维持和管理连接。(另:如果连接器认证通过,会到权限表里查出连接者的权限,之后这个连接里的操作权限都依赖于查出权限。也就是说如果Admin修改了某个用户的权限,只有当该用户重新建立连接才会生效。) 查询缓存:MySQL拿到一个查询请求后,会先去查询缓存中查看是否之前执行过这个条语句,如果可以找到就将结果直接返回。否则Mysql就进行后面的执行阶段。(Mysql8.0版直接将查询缓存功能删掉了。即使是之前的版本