数据库架构分析mysql_深入分析MySQL的逻辑架构

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 19:19   2343   0

服务器端:包含以下几部分连接/线程处理查询缓存分析器优化器存储引擎每一个客户端发起一个新的请求都由服务器端的连接/线程处理工具负责接收客户端的请求并开辟一个新的内存空间 在服务器端的内存中生成一个新的线程, 当每一个用户连 接到服务器端的时候就会在进程地址空间里生成一个新的线程 用于响应客户端请求 用户发起的查询请求都在线程空间内运行, 结果也在这里面缓存并返回给服务器端.线程的 重用和销毁 都是由连接/线程处理管理器实现的综上所述:用户发起请求 连接/线程处理器 开辟内存空间 开始提供查询的机制接下来用户发起SQL 查询语句 用户的SQL语句 在连接/线程处理器接收 接收下来后 开始交给服务器端的核心组件来查询 为了加速 MySQL 的查询速度 提供了一个查询缓存 空间 如果同一个SQL语句此前被查询过了结果符合某个特定条件 就会保存在查询缓存空间里 因此第二次执行这条语句的时候 就直接返回结果 这样大大的提高了MySQL检 索响应速度。 如果缓存中没有响应的语句(缓存未命中)此时就交给分析器分析器分析用户发起的SQL语句 把语句进行切片 该分析器包括词法分析和语法分析两部分 语法分析器用来分析接收到的语句语法是否正确 如果语法是错误的就不用执行这 条语句了 如果语法分析无误 (syntex 0K !) 接下来就做词法分析, 词法分析 就是把接收到的语句进行切片 一段一段用空格分开 因为分析器分析的结果要送达给解释器 进行 执行的 【命令 选项 参数】为什么要进行词法分析呢?SQL 有个最重要的特点 在数据库的表中的检索特定字段的数据时 不同数据库不同表 是不一样的 字段不一样 就必须要把接收到的语句进行切片才能找到特定的字段值词法分析后的结果发现没有问题分析的结果交给优化器进行优化 怎么进行优化呢有N中执行办法 N中执行路径 是否用到数据库 执行路径中哪个速度最快 都是优化过程需要考虑的问题 优化器的主要目的就是从N中执行路径中选择一种最快的 并生成对应 的可执行的二进制格式 并进行执行 ,选一个最优的执行执行就是从存储在磁盘中的文件中检索一个最优的数据真正存储在磁盘上的数据是由存储引擎管理的, 存储在文件系统或者是裸设备上的数据管理程序本身能提供给上层应用不同的功能 不同的存储引擎具有不同的特性--------------------------------------------------------------------------------------------------------------

0_1314877463Mm91.gif核心组件包含SQL interface用户发过来的SQL命令都由SQL接口接收本地API发送来的请求则是由其他机制接收DML 数据操作语言 data manipulation languageupdate,delete,e.g. 查询一行数据、删除一行数据、修改一行数据 // 实现数据本身的操作DDL 数据定义语言 data difinition languageCREATE,DROPe.g. 创建一个新的数据库、创建一个新的表、创建一个新的索引help CREATE TABLE存储过程视图触发器Parser 分析器查询事情对象权限词法分析句法分析Optimizer 优化器访问路径 执行路径 实现统计Caches&Buffers 缓存和缓冲全局定义特定的缓存缓冲Pluggable Storage Engines 插件式存储引擎数据库提供了大量的数据MySQL是提供数据库的管理软件 管理数据库中的数据数据库的物理结构是一个个的文件 逻辑上看是一个个的表如何组织 对应的表怎么转化成物理文件 靠MySQL 提供的存储引擎来实现 一一对应起来用户可以自己选择 因为是插件式的存储引擎 把表和数据文件对应起来存储引擎:将逻辑结构转换成物理结构的程序MySQL 插件式存储引擎 使用灵活 最终形成的文件要保存在磁盘分区上 分区上与文件系统相关数据库对象:表,二维关系 // 逻辑上是以表的形式存储记录字段索引视图触发器存储过程存储函数时间调度器用户游标元数据库信息保存在数据中// 物理上对应于一个文件存储

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP