zoukankan      html  css  js  c++  java
  • mysql 基础架构

    mysql分为Server层和存储引擎层

    Server层

    涵盖了大多数mysql的核心服务功能,以及所有内置的函数(例如日期、加密、数学等函数),所有跨存储引擎的操作都在Server层实现:存储过程、触发器、视图等

    • 连接器
      • 连接器主要负责建立连接、进行权限验证、维持和管理连接,
      • 连接完成后,如果没有后续操作,这个链接就处于空闲状态(sleep)
    • 查询缓存
      • Mysql拿到一个查询请求后,会去看之前执行过的以key-value对形式缓存在内存中的执行结果,key就是执行语句,value就是执行结果
      • 如果存在缓存,就直接返回,不存在会继续执行后面的操作
      • 不建议使用
        • 只要对表进行更新,那么这个表的所有缓存结果都会被清空
        • mysql 8.0之后就不再支持查询缓存
    • 分析器
      • 词法分析,识别sql语句要进行的操作、用到的表和字符串
      • 语法分析,判断sql语句是否满足mysql的语法规则
    • 优化器
      • 决定使用什么样的索引,如果是连表查询的话要判断连接表的顺序
    • 执行器
      • 判断对要操作的表有没有操作权限(读和写)
      • 通过存储引擎的接口,取出所需要的结果数据

    存储引擎层

    负责数据的存储和提取,架构模式是插件式的。支持InnoDb、MyIsam等,从mysql5.5.5版本后,InnoDB开始成为了Mysql默认的存储引擎

  • 相关阅读:
    前端之多行省略号显示...
    关于跨域的那点事情
    前端之碰到数组等基础类型改变而试图无更新
    前端小记之vue下载二进制文件
    防抖和节流
    前端小记之style三元运算符
    Django之坑TemplateDoesNotExist
    MYSQL之net start mysql 1067报错
    vscode之创建django项目
    phpstorm使用mysql出现timezone问题
  • 原文地址:https://www.cnblogs.com/William364248886/p/14984200.html
Copyright © 2011-2022 走看看