前言
做程序开发也有些年头了,刚入行的由于公司业务需要玩过两年技术,各种技术都多少玩过,最近这段时间,着重的是业务方向的开发,技术也不能落下,MySQL用了这么几年,都差点忘了本了,那么这里就从MySQL的架构开始!
第一层
最上层的服务并不是MySQL特有的,大多数基于网络的客户端/服务器的工具或者服务都有类似的架构,比如连接处理,授权认证,安全等
第二层
第二层架构是MySQL比较有意思的部分,大多数MySQL的核心服务功能都在这一层,包括查询解析,分析,优化,缓存,以及所有的内置函数(日期、时间、数学和加密等函数),所有夸存储引擎的功能都在这一层实现,例如:存储过程、触发器、视图等。
第三层
第三层包含了存储引擎,存储引擎负责MySQL中数据存储/提取,和CNU/Linux下各种文件系统一样,每个存储引擎都有它独特的优势和劣势,服务通过API与存储引擎进行通信,这些接口屏蔽了不同存储引擎之间的差异,使得这些差异对上层查询过程透明,存储引擎API包含十几个底层函数,用于执行诸如“开始一个事务”或者“根据主键提取一行记录”等操作,但存储引擎不会解析SQL,(InnoDB是个例外,他会解析外键定义,因为MySQL服务器本身没有实现该功能),不同的存储引擎也不会相互通信,而只是简简单单的响应上层服务器的请求!