MySQL 的架构与组件
MySQL 的逻辑架构图设计图 连接/线程处理: 管理客户端连接/会话[mysql threads] 解析器: 通过检查SQL查询中的每个字符来检查SQL语法,并 为每个SQL查询 生成 SQL_ID 。 此外,身份验证检查(用户凭据)将在此阶段发生。 优化程序: 根据存储引擎创建有效的查询执行计划。 它将重写一个查询。 示例:InnoDB具有共享缓冲区,因此优化器将从中获取预缓存的数据。 使用表统计信息优化器将为SQL查询生成执行计划。 授权检查(用户访问权限)将在此阶段发生。 元数据缓存: 缓存对象元数据信息和统计信息。 查询缓存: 来自内存的共享相同查询。如果在查询缓存中找到来自客户端的相同查询,则MySQL服务器从查询缓存中检索结果,而不是再次解析和执行该查询。 它是会话的共享缓存,因此可以发送一个客户端生成的结果集以响应另一个客户端发出的相同查询。 查询缓存基于 SQL_ID .SELECT数据进入视图是使用查询缓存预缓存数据的最佳示例。 密钥缓存: 缓存表索引。在 MySQL 中密钥是索引(在oracle密钥是约束),如果索引大小小,那么它将缓存索引结构和数据叶。如果索引很大,那么它将只缓存索引结构。由MyISAM 使用存储引擎。 存储引擎: 管理物理数据(文件管理)和位置的MySQL组件。 存储引擎负责执行SQL语句并从数据文件中获取数据。 用作插件