Mysql数据库的基本结构和存储引擎简介

一.Mysql的两层架构:

    

    1.SQL Layer():除了处理底层数据的所有功能,包括权限判断,sql解析,执行计划优化,query cache等

      子模块:1.初始化模块:Mysql Server启动时整个系统的初始化

          2.核心API:对底层操作的优化,

          3.网络交互模块:(实现底层交互的api)

          4.Client&Server:实现客户端与Mysql交互的协议

          5.用户模块:(实现连接权限控制,及用户授权)

          6.访问控制模块:(根据用户授权信息,控制用户可以访问的操作)

          7.连接管理,连接线程和线程管理:(监听用户的连接请求,转发到连接线程模块)

          8.Query的解析和转发模块

          9.Query cache模块:(缓存,提高性能)

          10.Query 优化器模块:(优化请求)

          11.表变更管理模块:(DML和DDL)

          12.表维护模块:(表的状态检查,错误修复)

          13.系统状态管理模块:(用于客户端请求系统参数时,返回用户系统参数)

          14.表管理器:()

          15.日志记录模块

          16.复制模块:

          17.存储引擎接口模块:(实现了存储引擎插件式管理)

    2.Storage Engine Layer(存储引擎层):实现底层数据的操作,由多种存储引擎组成

二.存储引擎

  1.MyISAM存储引擎:这种引擎的表在数据库中,每个表被存放在三个以表命名的物理文件

    分别是存储表结构定义信息的.frm文件,存放数据的.MYD文件,存放索引的.MYI文件

     MyISAM支持下面三种索引:

      a.B-Tree索引(最常用的)

      b.R-Tree索引(很少使用)

      c.Full-text索引:全文索引,存储结构也是B-tree

     数据存放的的.MYD文件,存放数据的格式有:(创建表时,可自己选择是否压缩,默认不压缩)

      a.静态固定长度

      b.动态可变长度

      c.压缩

   2.Innodb存储引擎

    特点:

      1.支持事务(实现了4个隔离级别)

      2.数据的多版本读取

      3.锁定机制的改进(通过索引,实现行锁)

      4.实现了外键

     物理结构:

        第一部分:数据文件(表数据及索引数据)

        第二部分:日志文件

    3.NDB Cluster存储引擎(在无共享存储设备的情况下,实现存储)

      (用于Mysql的分布式集群环境)

       Mysql Cluster的环境组成:

        a.负责管理各个节点的Manage节点主机(必须最先启动,集群的配置,启动关闭各个节点)

        b.SQL层的SQL服务器节点(连接管理,query优化,cache)(不需要提供存储引擎)

        c.Storage层的NDB数据节点,(实现底层的数据存储功能)

      

posted @ 2017-03-21 00:22  我_会飞的鱼  阅读(408)  评论(0编辑  收藏  举报