MySQL 由 Server 层和引擎层两部分组成。Server 层包括连接器、查询缓存、分析器、优化器、执行器。
所有的内置函数(如日期、时间、数学和加密函数)、所有跨存储引擎(存储过程、触发器、视图)的功能都在这层实现。
存储引擎层负责数据的存储和提取。
支持 InnoDB、MyIsAM、Menory 等诸多存储引擎,MySQL 5.5.5 版本开始成为默认存储引擎
连接器:连接器负责跟客户端建立连接、获取权限、维持和管理连接。
1,连接建立后即使使用管理员账号修改了这个用户的权限,也不会影响已经存在的连接权限。只有再新建连接才会使用新的权限设置
2,MySQL 在执行过程中使用的内存管理在连接对象里,连接断开的时候才会释放,长连接累积下来,可能会导致内存占用太大
3,连接完成后,如果没有后续动作,这个连接就处于空闲状态,可以通过 show processlist 命令查看,command 显示为 “Sleep” 是空闲连接。
4,如果长时间没动静,连接器会自动断开连接,断开连接的默认时间为 8 小时,有参数 wait_timeout 控制。
5,连接有长连接和短连接,短连接是每次执行完很少的几次查询就断开连接,下次再重新建立一个,建立连接的过程比较复杂
,尽可能减少建立连接的动作,尽量使用长连接。
查询缓存:连接建立完成,执行逻辑就会进入查询缓存,执行结果已key-value的形式缓存在内存中。
1,查询缓存失效非常频繁,只要有对一个表的更新,这个表的所有查询缓存都会清空。
2,可以关闭查询缓存,query_cach



