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存储引擎等
第四次:物理文件
- 支持的文件类型
- EXT3、EXT4、NTFS、NFS
- 文件内容
- 数据文件
- 日志文件