美文网首页程序员
mysql层次结构

mysql层次结构

作者: mafa1993 | 来源:发表于2020-05-11 21:49 被阅读0次

mysql大体结构

  1. 连接层,通过sock进行通信,提供api供客户端使用
  2. sql层,解析,优化sql语句,选择最优执行方案
  3. 存储引擎 innodb myisam
  • 客户端
  • 服务端
    • 连接线程,连接层,主要用来管理mysql对于程序连接
    • 优化器+解析器+查询缓存-》sql层,处理优化sql语句,指定执行计划
    • 存储引擎接口,获取存储引擎中的数据
    • 核心api:主要io,字符串处理,内存管理
  • 存储引擎,存储用户记录的信息

连接层

  1. 连接后进行用户名密码校验,如果异常,返回并抛出异常,show variables like “%max_connections%”; mysql最大连接数
    • 最大连接数100,1000访问,会出现短暂的延迟,但不会阻塞
    • show processlist 查看连接状况
  2. 验证后,会分配一个线程进行处理
  3. 查询权限
  4. 返回连接id

sql层

  1. sql层接口接收sql语句
  2. 判断sql语句类型
    • dml update select insert
    • ddl alter
    • rep主从相关
    • 状态查询,参数查询 show status等
  3. 如果为query,判断是否开启了缓存,如果开启并命中,返回数据
  4. 没有命中缓存,使用解析器对sql解析,解析成令牌(词法分析和语法分析)
  5. 语法分析,根据令牌进行组装,组装成数据结构,生成抽象语法树
  6. 优化器,根据得到的解析树选择合适的执行计划
    • 获取表结构(字段,字段类型,索引,存储位置)获取要查询表的信息,join的话就是多个表
    • 根据解析树进行条件过滤,会过滤掉一些没有意义的查询如1=1,对常量表达式转化成常量,调整查询结构,分析索引信息
    • 判断查询计划
    • 如何执行性能是最优方案,方案并不一定正确
  7. 查询缓存,8.0开始逐步删除查询缓存,8.1正式删除,因为查询缓存存在问题

存储引擎

  1. 提供存储引擎接口获取磁盘数据

相关文章

  • mysql层次结构

    mysql大体结构 连接层,通过sock进行通信,提供api供客户端使用 sql层,解析,优化sql语句,选择最优...

  • MySQL层次结构与SQL语句的执行

    MySQL层次结构 MySQL层次分为三层,如下图: 第一层服务负责连接处理、授权认证、安全等。 第二层服务包括查...

  • note_21.4.2_DB

    mariadb(mysql): 数据管理模型:层次模型、网状模型、关系模型 数据分类:结构化数据、半结构化数据、非...

  • 漫谈纬度表如何设计(四)

    一:均衡层次结构和非均衡层次结构 先来看看均衡层次结构和非均衡层次结构的定义吧。 均衡层次结构:纬度有多个递归层次...

  • mysql 存储引擎

    1.什么是存储引擎 相当于mysql内置的文件系统。 与Linux中的文件系统打交道的层次结构。 2.mysql ...

  • 超详细的MySQL工作原理 体系结构

    了解MySQL(超详细的MySQL工作原理 体系结构) 1.MySQL体系结构 2.MySQL内存结构 3.MyS...

  • mysql-7 存储引擎

    什么是存储引擎 1 相当于 mysql 内置的文件系统 于linux文件系统打交道的层次结构2 分类InnoDB ...

  • 图解设计模式--Bridge(桥接模式)

    将类的功能层次结构与实现层次结构分离 Bridge 模式 Bridge 模式的作用是将类的功能层次结构和类的实现层...

  • 在Linux操作MySQL

    一、使用ps -ef|grep mysql查看mysql是否启动以及查看目录结构 MySQL的目录结构: /var...

  • 第 9 章 Bridge 模式 -- 将类的功能层次结构与实现层

    Bridge 模式 建立类的功能层次结构和类的实现层次结构之间的关系。 类的层次结构 希望增加新功能时 类的功能层...

网友评论

    本文标题:mysql层次结构

    本文链接:https://www.haomeiwen.com/subject/edzpnhtx.html