MySQL的体系结构

学习MySQL,一定要对其体系结构有一个清晰的认识
首先我们先来看一张MySQL的体系结构图
ps:这张图对于学MySQL的人来说一定很熟悉吧!
如图·,MySQL的结构一共可以分成三层: 连接层,SQL层,存储层
连接层:  为请求做连接处理,授权认证,安全
SQL层:  包括查询解析、分析、优化、缓存、内置函数,所有跨域存储引擎都在这一层
SQL层 包括以下
  • SQL Interface:SQL接口, 接受用户的SQL命令,并且返回用户需要查询的结果
  • Parse:解析器,MySQLY使用ACC算法解析器
            a、将 SQL语句解析成数据结构(解析树),并将其传递到后续步骤
            b、如果在分解过程中遇到错误,说明该sql语句不合理。
  • Optimizer:查询优化器,为SQL语句生成合理的执行计划
                  如:重写不合理SQL语句,是否使用索引访问表等等
  • cache & buffer:用于缓存SQL语句返回的结果。
                         主要有query_cache,key_buffer,innod_bbuffer等构成

接下来我们看一下下面这张流程图
这是一条SQL语句在内存中的运行过程:
当一条SQL语句发出后,会在SQL层中判断该SQL语句的 是否命中查询缓存(query_cache)中的数据,若是便直接返回该结果。若不是便使用Parse解析该SQL语句生成数据结构(解析树),再通过Optimizer对此进行优化,得到执行计划,生成  指令树,通过其 调用存储引擎的API来执行查询,得到结果,将其缓存在cache & buffer,返回结果。

存储层包括以下:
  • 存储引擎: 通过不同的存储引擎为表提供不同的功能和服务,是MySQL有别于其他数据库的特色之一。
                 5.58之前MySQL的默认引擎是MyISAM,之后到至今是innodb
                 MySQL的存储引擎是可热插拔的,甚至只要你有能力,可以开发自己的存储引擎。             
  • File System:os上的文件系统,此处便不多做介绍。
  • File & logs:datadir目录下的各种文件
除了这三层之外,还有:
  •  Management Serveices & Utilities: 系统管理和控制工具。MySQL通过这个工具和服务来实现数据库的控制和管理。比较备份工具mysqldump等

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31386161/viewspace-2131149/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31386161/viewspace-2131149/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值