MySQL团体架构

打印 上一主题 下一主题

主题 2019|帖子 2019|积分 6057

目次
  1 客户端
  2 服务端
  2.1 Server层
  2.1.1 连接器
  2.1.2 查询缓存
  2.1.3 词法器
  2.1.4 优化器
  2.1.5 实验器
  2.2 存储引擎层
  
  
        

   1 客户端

   ● 客户端为连接MySQL服务端的工具大概驱动,比如JDCB,ODBC等等
   ● 用于连接现在服务器,并且发送需要实验的SQL
   2 服务端

   2.1 Server层

   ● 负责处理惩罚SQL语句,解析优化,缓存等
   ● 提供权限管理,用户认证
   ● 提供了各种SQL函数和存储过程
   ● 提供了复制,备份,规复等高级功能
   ● Server层有自己的日志体系,binlog日志
   ● binlog纪录了所有的DML(INSERT,UPDATE,DELETE)语句
   ● binlog只要用于复制和规复操作
   2.1.1 连接器

   ● 负责吸收客户端的连接
   ● 验证是否有权限登录
   ● 维护连接
   
   ● 默认异连接上的客户端空闲8小时后会被服务端自动断开
   

   
   连策应该留意的问题
   ● 频繁创建和关闭连接可能会对性能产生负面影响,通常用连接池来管理数据库连接
   ● 利用长连接时,有可能会因为产时间运行导致MySQL服务端内存占用高未开释问题,可实验RESET CONNECTION下令重置mysql连接开释内存(当地利用MySQL8实验下令报错)
   2.1.2 查询缓存

   ● MySQL5.7版本,查询时先查询缓存此语句是否实验过
   ● 之前实验的SQL语句会作为key,查询结果作为value存储在查询缓冲中
   ● 假如命中缓存,将直接返回查询结构
   ● 假如未命中,才真正实验查询逻辑
   
   相干参数
   ● query_cache_size:用于缓存巨细
   ● query_cache_type:设置利用缓存的场景
   ○ 0(OFF):不利用query cache
   ○ 1(ON):利用query cache
   ○ 2(DEMOND):查询时利用sql_cache参数才利用query cache
   
   ● MySQL8中去除了查询缓存机制
   ● 因为对于更新频发的表来说,缓存命中率会非常低
   ● 对于静态表,普遍上都会在业务层做缓存,不会利用到MySQL缓存数据
   2.1.3 词法器

   ● 若查询缓存未命中,则会实验分析器来分析sql语句是否正当,主要进行词法分析和语法分析两个阶段
   ● 词法分析:
   ○ 主要负责从SQL语句中提取关键字,比如表名,字段名等等
   ○ 词法分析阶段从information_schema库中获取表结构信息
   ● 语法分析
   ○ 判断输入的语句是否满足MySQL语法
   ○ 假如语法错误,就会返回错误提示
   

   ● 在分析阶段也会对数据库的表级权限和数据库权限进行验证
   2.1.4 优化器

   ● 颠末了分析器,若语法精确,则会进入优化器
   ● 优化器的作用是查询重写,选择最佳实验路径,生成实验筹划
   ● 查询重写:对原始的查询SQL进行重写,比如将子查询转换为join连接等
   ● 选择最佳实验路径:基于统计信息,选择利用哪个索引,确定表的连接顺序以及是否利用临时表,文件排序等策略
   ● 生成实验筹划:基于以上分析,生成SQL实验筹划,详细描述了怎样从存储引擎获取数据,进行过滤,排序和聚合等操作
   
   
   2.1.5 实验器

   ● MySQL通过分析器知道了你要做什么
   ● 通过优化器知道了该怎么做
   ● 通过实验器开始实验语句
   
   打开表的时间,实验器就会根据标的引擎界说,去利用这个引擎提供的接口
   ● 调用引擎接口取这个表的第一行,判断是否满足条件,假如不是则跳过,假如是则将这行存在结果集中
   ● 调用引擎接口获取下一行,重复雷同的判断逻辑,知道取到这个表的最后一行
   ● 实验器将上述遍历过程中以是后满足条件的行构成纪录集作为结果返回给客户端
   2.2 存储引擎层

   ● 负责数据的存储和检索
   ● MySQL支持多种存储引擎,比如InnoDB,MyISAM,Memory等等
   ● InnoDB是MySQL默认的存储引擎,支持事件,行级锁以及外键约束
   ● InnoDB有自己的日志体系,redo log(重做日志)和undo log(打消日志)
   ● redo log用于包管事件的长期性
   ● undo log用于支持事件的原子性和多版本并发控制(MVCC)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

忿忿的泥巴坨

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表