MySQL在整体架构上,总共四层:
第一层:连接/线程处理层。主要用来处理客户端的请求、用户身份验证、数据安全性校验等。它并不是MySQL独有的,大多数基于网络的客户端/服务器的工具或者服务都有类似的架构。
第二层:查询解析层。这一层包含了MySQL大多数的核心服务。包括:查询解析、分析、优化、缓存以及所有的内置函数(例如:日期、时间、数学和加密函数)。同时,所有的跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。
第三层:存储引擎层。存储引擎负责MySQL中数据的存储和提取。服务器通过API和存储引擎进行通信。这些接口屏蔽了不同存储引擎之间的差异,使得这些差异对上层的查询过程透明化。但存储引擎一般不会去解析SQL(InnoDB会解析外键定义,因为数据库本身没有实现该功能),不同存储引擎之间也不会相互通信,而只是简单的响应上层的服务器请求。
第四层:文件层。包括MySQL的日志文件、数据文件、其他文件等。
文件数据 | 文件示例 |
---|---|
日志文件 | 二进制日志文件:Binary Log 查询日志:Query Log 慢查询日志:Slow Query Log 错误日志:Error Log InnoDB存储引擎在线Redo日志:InnoDB redo Log |
数据文件 | .frm文件:存放与表相关的数据信息,主要包括表结构的定义信息 .MYD文件:MyISAM存储引擎的数据文件 .MYI文件:MyISAM存储引擎的索引文件 .ibd文件:InnoDB存储引擎的数据文件 .csv文件:CSV存储引擎的数据文件 .ARZ文件:Archive存储引擎的数据文件 |
其他文件 | 系统配置文件 pid文件 sockey文件 |
本站所有内容均为原创,本站保留所有权利。仅允许非商业用途的转载,但必须注明来源网站、作者、来源链接!否则,由此造成的一切后果,由转载方承担!
干货分享、技术提升、面试笔试、学习交流,欢迎关注公众号:xuesql。QQ学习交流群:209942678。