美文网首页
Mysql体系结构

Mysql体系结构

作者: lv_shun | 来源:发表于2019-08-01 19:20 被阅读0次

    一直使用mysql,但是始终没有深入,拜读《Mysql技术内幕InnoDB存储引擎》中,写些笔录,与君共勉。

    数据库和数据库实例

    • 数据库
      物理操作系统文件或其他形式文件类型的集合。就是依照某种数据库模型组织起来已二进制文件形式存放的集合。
    • 数据库实例
      Mysql数据库由后台线程及共享内存组成。共享内存可以被运行的后台线程所共享。数据库实例是真正操作数据库的。

    Mysql被设计为一个单进程多线程架构的数据库。和SQL Server比较类似,但是和Oracle多线程架构不同(Oracle的windows版本也是单进程多线程架构)。Mysql数据库实例在系统上的表现就是一个进程。

    Mysql启动配置加载顺序

    • 查询方法
    mysql --help | grep my.cnf
    order of preference, my.cnf, $MYSQL_TCP_PORT,
    /etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
    
    • 读取顺序
      /etc/my.cnf -> /etc/mysql/my.cnf -> /usr/local/etc/my.cnf ->~/.my.cnf
      如果多个配置中存在相同参数的配置则按最后配置文件中的值为准。
    • 配置数据库所在路径
      在配置文件中有个参数datadir。可以通过mysql交互界面查询。
    mysql> show variables like 'datadir'\G;
    *************************** 1. row ***************************
    Variable_name: datadir
            Value: /usr/local/var/mysql/
    

    Linux默认值为/usr/local/mysql/data/,这个目录其实是个链接,链接目录为/opt/mysql_data目录,必须保证目录的用户和组,使得只有mysql用户和组可以访问。

    体系结构

    mysql体系结构.png

    如图,为官方体系结构图,由图可知体系结构包括几部分:

    • 连接池组件
    • 管理服务和工具组件
    • sql接口组件
    • 查询分析器组件
    • 优化器组件
    • 缓存组件
    • 插件式存储引擎
    • 物理文件
      Mysql和其他数据库最大区别在于插件式引擎。Mysql提供了一系列的管理和服务,这些和引擎本事无关,其他数据库也同样包括这些。而存储引擎是底层物理结构的实现,每个存储引擎按照自己的意愿进行开发。
      存储引擎是基于表的,而不是数据库,同一个库中每个表可以是任意存储引擎。

    相关文章

      网友评论

          本文标题:Mysql体系结构

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