1,整体架构

image.png

  • 客户端:各种语言 SDK,图形化管理工具,用来给 MySql 服务器发送请求
  • 服务器,一个独立的进程,用来处理客户端的请求
    • 连接器:管理缓存客户端的连接(连接池)
    • 分析器:对 SQL 语言进行词法,语法分析,判断是否可执行(AST 语法分析树)
    • 优化器:对 SQL 进行优化调整,使用 MySql 认为最优的执行计划
      • CBO:基于成本优化
      • RBO:基于规则优化
    • 执行器:按照最优的执行计划执行上述的 SQL
  • 物理层:通过指定的存储引擎用不同的文件格式将数据持久化到磁盘文件

    2,MySql 的存储引擎

    image.png

    1,InnoDB

    image.png

  • .frm:存储表结构或者元数据

  • .ibd:存储真实的数据(包括索引等数据)

    2,Myisam

    image.png

  • .frm:存储表结构或者元数据

  • .MYD:存储真实的数据(MY Data)
  • .MYI:存储索引数据(MY Index)

    3,MySql 的日志

    1,Bin Log

    属于服务器,用来实现主从复制,默认不开启

    2,Undo Log

    属于 InnoDB 存储引擎,用来实现原子性

    3,Redo Log

    属于 InnoDB 存储引擎,用来实现持久性