1.mysql架构图

1.第一层:对客户端的连接处理、安全认证、授权等,每个客户端连接都会在服务端拥有一个线程,每个连接发起的查询都会在对应的单独线程中执行。
mysql如果一直保持连接状态,mysql会把内存吃满,此时可以使用两种方案:
(1)断开一段时间后重连
(2)通过执行 mysql_reset_connection来重新初始化连接资源。这个过程不需要重连和重新做权限验证,但是会将连接恢复到刚刚创建完时的状态。
2.第二层:MySQL的核心服务功能层,包括查询解析、分析、查询缓存、内置函数、存储过程、触发器、视图等,select操作会先检查是否命中查询缓存,命中则直接返回缓存数据,否则解析查询并创建对应的解析树。如下图,解析器会将命令分类为select、dml、ddl、rep、status五个模块的内容将给不同的模块去处理
3.第三层:存储引擎,负责数据的存储和提取,MySQL服务器通过API与存储引擎通信,屏蔽了各种引擎之间的差异,常见的存储引擎有:InnoDB、MyISAM。
MySQL架构分为三层:第一层处理客户端连接,包括安全认证和授权;第二层涉及查询解析、缓存和核心服务;第三层是存储引擎,如InnoDB和MyISAM,负责数据存储和提取。长时间连接可能导致内存消耗,可以通过重连或使用mysql_reset_connection来管理。查询首先检查缓存,然后解析并创建解析树进行处理。
8787

被折叠的 条评论
为什么被折叠?



