美文网首页
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