MySQL的基本架构大致能够分为server层和存储引擎层,逻辑架构图以下:sql
Server层除了图中显示的,还包括全部的内置函数(包括日期、时间、数学和加密函数等),存储过程、触发器、视图等跨存储引擎的功能都在这层实现。数据库
缓存
链接器架构
链接器负责跟客户端创建链接、获取权限、维持和管理链接。数据库里面的链接分为长链接和端链接,和tcp的链接相似。长链接过多会占用内存太大,从而出现OOM。能够考虑按期断开长链接,尤为是执行过一个占用内存的大查询;5.7版本之后能够执行 myssql_reset_connection来从新初始化链接资源。tcp
查询缓存函数
执行查询语句时,若是以前执行过那么语句和结果可能会以key(语句)-value(结果)直接缓存在内存中。优化
不建议使用查询缓存,由于只要有一个表更新,那么这张表上全部查询缓存都会被清空。8.0版本后删除了此功能。加密
分析器spa
分析器对SQL语句作解析,先作词法分析,例如‘“select”-->查询语句;再作语法分析。server
优化器
表里多个索引决定用哪一个或者关联查询时决定表的链接顺序
执行器
- - MySQL实战45讲笔记一