【MySQL 原理】01 体系结构

MySQL体系结构


–摘自MySQL官方手册

整体可分四层

第一层:连接层

防止资源的频繁分配、释放,提前建立一个连接池

功能:进行身份验证、线程管理、连接限制、内存检查、数据缓存。

实现:预先在连接池中放入一定数量的连接,当需要建立数据库连接时,从池中取出一个,用完放回去。

通信协议

  • TCP/IP协议,本地与远程连接
  • UNIX套接字文件
  • 共享内存
  • 命名管道

第二层:SQL层

总共由5个部分组成

1. 管理服务和工具组件

备份、复制、集群、管理、配置、迁移等管理工具

2. SQL接口组件

进行DML、DDL,存储过程、视图等操作和管理

3. 解析器组件

验证和解析SQL命令

4. 查询优化器

对SQL查询进行优化

5. 缓存和缓冲区

对结果集进行缓存,提升重复查询效率

第三层:插件式存储引擎

MySQL的存储引擎是插件式的,能由第三方开发


– 查看数据库支持的引擎

3.1 MyISAM

查询速度快,较好的索引优化和数据压缩技术,不支持事务、表锁设计,支持全文索引

MyISAM表由MYD和MYI组成,MYD存放数据数据,MYI存放索引文件

3.2 InnoDB

支持事务,行锁设计、支持外键。

每个innodb存储引擎的表单独存放在独立的ibd文件中

3.3 Memory

适合存储临时数据,如果数据库重启或崩溃,数据将消失。只支持表锁,并发性能差。

其他

还有 Archive 、 Federated 、Maria存储引擎等

第四次:物理文件

  1. 支持的文件类型
    • EXT3、EXT4、NTFS、NFS
  2. 文件内容
    • 数据文件
    • 日志文件
您的支持将鼓励我继续创作!