1.首先,通过一张图来看mysql的整体逻辑架构图:
下面对图中几个部分进行说明:
连接/线程处理:处理用户的连接请求、管理连接池,用户名密码验证,权限校验等。(要操作数据库,首先肯定需要建立与数据库的连接)
查询缓存:mysql会将sql和对应返回值缓存起来,一个新的查询请求到来,首先会去缓存里面获取,有就直接返回了。(当有增删改时会删除缓存)
解析器:对sql语句进行词法解析(将mysql关键字和列、条件等区分开)和语法解析(验证sql语法是否符合SQL92标准)
优化器:优化sql语句,生成执行计划(是否用索引,用什么索引,where条件的执行顺序等)
其实下面还有个执行器:通过上步的生成执行计划,调用存储引擎。
存储引擎:具体的和磁盘打交道,进行数据的增删改查。
2.下面我们来看物理结构:
mysql的物理结构主要分为:日志文件