MySQL简单认知

前言

 	 一直想把这些年自己的学习总结分享出来,却一直不知道从哪里入手,辗转反思,决定还是从mysql入手。

MySQL的逻辑架构

了解mysql的逻辑架构图能够帮助我们更加清晰的了解mysql各个组件之间如何协同工作,同时也帮助我们增加深入的理解mysql 服务器。

在这里插入图片描述

  • 连接层
    连接层只的客户端和一些连接服务,包括socket通信和大多数的基于客户端的或者服务端的类似TCP/IP的通信层。主要完成类似一些连接处理、授权、以及一些安全的相关方案。

  • 服务层
    服务层主要完成了mysql服务的大多数的核心的功能,

    • SQL Interface : sql接口实现了DML (select update delete),DDL(CREATE 、DROP、TRUNCATE) ,存储过程,视图、触发器等 一些功能
    • Parser :词法分析跟语法分析; Mysql 会解析查询,并创建内部的数据结构(解析树),Parser 就是为了解析SQL在内部形成自己的语法树,并进行一些校验。Parser 利用了C/C++ 实现的开源的yacc/lex 组合,也就是GUN bison/flex 来组合进行语法解析(SQL input -> lex. scanner -> parser -> AST (SELECT_LEX, Items etc) -> executor)
    • Optimizer: 优化器,主要是对SQL语句进行优化:选择合适的索引,决定表之间的连接顺序
    • Cache & Buffer : 缓存的设计和实现:针对select语句 ,在解析查询前,服务器会检查查询缓存,如果能够在其中找到对应的查询,服务器就不再执行查询解析->优化->执行的过程,而是直接返回查询缓存中的结果. 注:生产环境中不建议使用查询缓存,并且在最新的mysql8.0中整个mysql的查询缓存模块都删除掉了。
    • executor 执行器 判断表是否有查询权限, 调用存储引擎接口进行查询或者其他的操作,将结果返回给客户端
  • 引擎层
    存储引擎层,负责了mysql的数据的存储和提取,服务器通过API于存储引擎之间进行通信,不同的存储引擎局用不同的功能.
    在这里插入图片描述

    常用的引擎主要是myisam & InnoDB,我们先简单的对比一下这两种引擎的区别
    在这里插入图片描述

  • 存储层
    数据存储层主要是将数据存储运行在文件系统上,存储层与存储引擎进行交互。架构的设计思想非常优秀,将存储层,跟数据计算层可以分开。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值