MySQL是由SQL接口,解析器,优化器,缓存,存储引擎组成的。
MySQL体系结构可以分为四个层级,如图1所示:
一、连接层
思想:为解决资源的频繁分配、释放所造成的的问题,为数据库连接建立一个“缓冲池”。
原理:预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕后再放回去。
作用:进行身份验证、线程重用、连接限制、检查内存、数据缓存;管理用户的连接,线程处理等需要缓存的需求。
二、SQL层
管理服务和工具组件:从备份和恢复的安全性、复制、集群、管理、配置、迁移和元数据等方面管理数据库。
SQL接口:进行DML、DDL、存储过程、视图、触发器等操作和管理;用户SQL命令接口。
解析器组件:验证和解析SQL命令。
查询优化器组件:对SQL语句查询进行优化,“选取、投影和连接”。
缓存和缓冲区:由一系列小缓存组成,比如表缓存、记录缓存、key缓存、权限缓存等。
三、存储引擎
MySQL的存储引擎是插件式的,它根据MySQL AB公司提供的文件访问层的一个抽象接口来定制一种文件访问机制,这种访问机制就叫存储引擎。存储引擎是MySql中具体的与文件打交道的子系统。
常见的存储引擎如下:
1、MyISAM:它查询速度快,有较好的索引优化和数据压缩技术,但它不支持事务。
2、InnoDB:它支持事务,并且提供行级的锁定,应用也相当的广泛。
3、BDB:不再从底层支持BDB。
4、Memory:适合存储临时数据。
5、Archive:适合存储历史数据。
四、物理文件层
支持的文件类型:EXT3、EXT4、NTFS、NFS
文件内容:数据文件、日志文件、配置文件、其他文件