MySQL配置文件

  • 我的服务器上是通过RPM的方式安装的MySQl,配置文件是在/etc目录下的my.cnf文件

    • 二进制日志log-bin:主要用于记录主从日志

    • 错误日志log-err:默认关闭,记录严重的警告和错误信息,每次启动和关闭的详细信息等

    • 查询日志log:默认关闭,记录查询的sql语句,如果开启会降低MySQL的整体性能,因为记录日志也是需要消耗系统资源的

      MySQL架构介绍 - 图1

  • 数据文件:数据库所在的位置

    MySQL架构介绍 - 图2


进入到对应的数据库中

MySQL架构介绍 - 图3

frm文件:存放当前表的表结构

myd文件:当前表的数据

myi文件:当前表的索引

MySQL逻辑架构介绍

  • MySQL分层设计

    MySQL架构介绍 - 图4


  1. 连接层
    最上层是一些客户端和连接服务,包含本地 sock 通信和大多数基于客户端/服务端工具实现的类似于 tcp/ip 的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。

  2. 服务层

MySQL架构介绍 - 图5

  1. 引擎层

存储引擎层,存储引擎真正的负责了 MySQL 中数据的存储和提取,服务器通过 API 与存储引擎进行通信。不同的存储引擎具有的功能不同,这样我们可以根据自己的实际需要进行选取。

  1. 存储层

数据存储层,主要是将数据存储在运行于裸设备的文件系统之上,并完成与存储引擎的交互。

  • 优点:插件式的存储引擎架构将查询处理和其他的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求实际的需要选择合适的存储引擎

MySQL存储引擎

  • 比较常用的两个分别是MYISAM,InnoDB。

  • 使用 show engines;命令可以查看支持的引擎类型

    默认使用的是InnoDB

MySQL架构介绍 - 图6

  • 使用show variables like "%storage_engine%";可以查看当前是数据库使用的引擎

    MySQL架构介绍 - 图7

  • MyISAM和InnoDB的对比

    MySQL架构介绍 - 图8