
课程咨询: 400-996-5531
投诉建议: 400-111-8989
认真做教育 专心促就业
MySQL数据库是大多数软件开发程序员在开发软件的时候都会用到的一个数据库类型,而本文我们就通过案例分析来简单了解一下,MySQL数据库底层架构包含哪些内容。
1.MySQL整体架构
由图中可以看到MySQL架构主要分为Server层和存储引擎层。
Server层又分为连接器、缓存、分析器、优化器、执行器。所有跨存储引擎的功能都在这层实现,比如:函数、存储过程、触发器、视图等。
存储引擎是可插拔式的,常见的存储引擎有MyISAM、InnoDB、Memory等,MySQL5.5之前默认的是MyISAM,之后默认的是InnoDB。
2.连接器
连接器主要用来管理客户端的连接和用户身份认证。
客户端与Server端的连接采用的是TCP协议,经过TCP握手,建立连接之后,连接器开始进行身份验证。
3.查询缓存
客户端请求不会直接去存储引擎查询数据,而是先在缓存中查询结果是否存在。如果结果已存在,直接返回,否则再执行一遍查询流程,查询结束后把结果再缓存起来。
如果数据表发生更改,将清空失效缓存,例如insert、update、delete、alter操作等。
4.分析器
分析器主要对SQL语句进行词法分析和语法分析。
先进行词法分析,分析出MySQL的关键字、以及每个词语代表的含义。然后进行语法分析,检测SQL语句是否符合MySQL语法要求。
MySQL通过识别字符串中列名、表名、where、select/update/insert等MySQL关键字,在根据语法规则判断sql是否满足语法,终会生成一个抽象语法树(AST)。
5.优化器
在真正执行SQL语句之前,还需要经过优化器处理。
我们熟知的执行计划(Explain)就是优化器生成的。
优化器主要有两个作用:逻辑优化和物理优化。
逻辑优化主要进行等价谓词重写、条件化简、子查询消除、连接消除、语义优化、分组合并、选择下推、索引优化查询、表查询替换视图查询、Union替换or操作等。
6.执行器
在优化器优化完SQL,并生成了执行计划后,就会把执行计划传递给执行器。
执行器调用存储引擎接口,真正的执行SQL查询。获取到存储引擎返回的查询结果,并把结果返回给客户端,至此SQL语句执行结束。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。