MySql数据库架构
网络连接层
:提供与mysql服务器建立连接的支持,负责连接管理、授权认证、安全等。
核心服务层
:主要包含系统管理和控制工具、连接池、SQL接口、解析器、查询优化器和查询缓存六个部分。
存储引擎层
:负责Mysql中数据的存储与提取,与底层系统文件进行交互。
文件系统层
:负责将数据库的数据和日志存储在文件系统之上,并完成与存储引擎的交互,是文件的物理存储层。
一、网络连接层
当客户端尝试与MySQL建立连接时,MySQL就会派发一个线程来对接这个客户端,来负责处理这个客户端接下来的所有工作。
数据库连接层的工作就是负责所有客户端的连接工作
。MySQL的连接一般都是基于TCP/IP协议的连接
二、SQL层(核心服务层)
功能:主要包含系统管理和控制工具、连接池、SQL接口、解析器、查询优化器和查询缓存六个部分。
1、管理服务和工具组件
:从备份和恢复的安全性、复制、集群、管理、配置、迁移和元数据等方面对数据库进行管理。
2、连接池
:负责存储管理客户端与数据库的连接、一个线程负责管理一个连接。
3、SQL接口
:用户SQL命令的接口;进行DML、DDL语句、存储过程、视图、触发器等操作和管理。
4、解析器
:对词汇语义、语法、SQL权限的检测、以及对代码的解析与验证。
5、查询优化器
:对SQL语句查询进行优化、选取。SQL查询语句中有多种执行方式,优化器会对查询代码进行最优化的选取方式来进行查询。
6、缓存和缓冲区
:主要分为了读取缓存与写入缓冲,读取缓存主要是指select语句的数据缓存,当然也会包含一些权限缓存、引擎缓存等信息。MySQL会对经常查询的语句保存在cache中,这样在下次查询时,能够直接使用。
三、存储引擎(mysql中不同的引擎有不同的运行机制)
**
InnoDB:支持事务,并且提供行级的锁定。 MyISAM:查询速度快,有较好的索引优化和数据压缩技术。缺点就是不支持事务
**
mysql数据库常用两种存储引擎
Memory:适合存储临时数据。HEAP存储引擎,数据保存在内存中。支持HASH索引和BTree索引。不支持支持Blog和Text等大字段。
Archive:适合存储历史数据。以zilb压缩表数据
四、物理文件层
文件系统层是MySQL的基础,是基于物理磁盘的一个文件系统。支持NTFS、UFS、ext2/3、NFS、 NAS等文件类型。该文件系统包含了数据文件、日志文件、配置文件、索引文件等各类MySQL运行 时所需要的文件