国外网站设计欣赏分析,面包店网站建设规划书,网站域没到期不能续费吗,wordpress清空数据引言
本篇文章介绍MySQL的逻辑架构图。
MySQL并不完美#xff0c;但足够灵活#xff0c;能够适应高要求环境。MySQL不仅可以嵌入到应用程序中#xff0c;同时也可以支持数据仓库、内容搜索、和部署软件、高可用的冗余系统、在线事务处理系统等各种应用类型。
一、MySQL逻…引言
本篇文章介绍MySQL的逻辑架构图。
MySQL并不完美但足够灵活能够适应高要求环境。MySQL不仅可以嵌入到应用程序中同时也可以支持数据仓库、内容搜索、和部署软件、高可用的冗余系统、在线事务处理系统等各种应用类型。
一、MySQL逻辑架构 MySQL最重要、最与众不同的特性就是它的存储引擎架构这种架构将查询处理、其他系统任务、数据的存储与提取 三部分分离。所以带来的好处就是可以在使用时根据性能、特性以及其他需求来选择数据存储方式。
存储引擎架构分为三层自上而下分为第一层连接层第二层服务层第三层引擎层。
连接层
MySQL的最上层是连接服务引入了线程池的概念允许多台客户端连接。主要工作是连接处理、授权认证、安全防护等。
连接层为通过安全认证的接入用户提供线程同样在该层上可以实现基于SSL 的安全连接。
服务层
服务层用于处理核心服务如标准的SQL接口、查询解析、SQL优化和统计、全局的和引擎依赖的缓存与缓冲器等等。所有的与存储引擎无关的工作如过程、函数等都会在这一层来处理。在该层上服务器会解析查询并创建相应的内部解析树并对其完成优化如确定查询表的顺序是否利用索引等最后生成相关的执行操作。如果是SELECT 语句服务器还会查询内部的缓存。如果缓存空间足够大这样在解决大量读操作的环境中能够很好的提升系统的性能。
引擎层
存储引擎层存储引擎负责实际的MySQL数据的存储与提取服务器通过API 与 存储引擎进行通信。不同的存储引擎功能和特性有所不同这样可以根据实际需要有针对性的使用不同的存储引擎。
二、MySQL 工作流程 在这里我从数据库架构的三个层面分别介绍数据库的工作流程 最上层客户端连接 1、连接处理客户端同数据库服务层建立TCP连接连接管理模块会建立连接并请求一个连接线程。如果连接池中有空闲的连接线程则分配给这个连接如果没有在没有超过最大连接数的情况下创建新的连接线程负责这个客户端。 、授权认证在真正的操作之前还需要调用用户模块进行授权检查来验证用户是否有权限。通过后方才提供服务连接线程开始接收并处理来自客户端的SQL语句。
第二层核心服务 1、连接线程接收到SQL语句之后将语句交给SQL语句解析模块进行语法分析和语义分析。 2、如果是一个查询语句则可以先看查询缓存中是否有结果如果有结果可以直接返回给客户端。 3、如果查询缓存中没有结果就需要真的查询数据库引擎层了于是发给SQL优化器进行查询的优化。如果是表变更则分别交给insert、update、delete、create、alter处理模块进行处理。
第三层数据库引擎层 1、打开表如果需要的话获取相应的锁。 2、先查询缓存页中有没有相应的数据如果有则可以直接返回如果没有就要从磁盘上去读取。 3、当在磁盘中找到相应的数据之后则会加载到缓存中来从而使得后面的查询更加高效由于内存有限多采用变通的LRU表来管理缓存页保证缓存的都是经常访问的数据。
最后获取数据后返回给客户端关闭连接释放连接线程。