mysql数据库的体系结构包括什么组件_基础篇-MySql数据库体系结构

本文介绍了MySQL数据库的体系结构,包括连接池、管理服务、SQL接口、查询分析器、优化器、缓冲组件、存储引擎和物理文件。解析器分析查询语句,优化器进行查询优化,存储引擎负责与物理文件交互。理解这些组件有助于深入理解和优化MySQL。
摘要由CSDN通过智能技术生成

mysql数据库体系结构图:

网上找的很容易理解,掌握其结构还是很有必要的,有助于我们的对mysql深入理解和优化

34aa95b79f96e25e4c11e12093693d4e.pngmysql由以下几个部分组成:

1、连接池组件,如连接数量限制,线程数量,内存检测

2、管理服务和工具组件

3、SQL接口组件-执行器执行DML,DDL,视图,触发器等

4、查询分析解析器组件-分析查询语句

5、优化器组件-主要对查询做优化

6、缓冲组件

7、插入式存储引擎

8、物理文件

连接池组件

管理缓冲,线程连接等缓存需求,用户验证等。

管理服务和工具组件

系统管理与控制,另外一些数据库工具使用也在这里 如mysql 启动,导出,关闭等,数据库系统自身管理

解析器组件

主要是解析查询语句,形成解析树,解析过程是这样的:

(1)分析语法是否正确

(2)查询缓存,如果缓存中有就直接返回结果,不做优优化器步骤

优化器组件

优化器主要是对查询做优化,数据的读取方式,索引使用方式,往往我们做SQL查询优化会对直接影响优化器组件解析SQL,他采用的是“选取-投影-关联”的方式进行查询的,例如:select user_id,user_name from user where mobile=xxxxx,这个语句首先执行where 后面的语句进行筛选,而不是将表中所有数据查询出来再过滤 ,其次是将user_id,user_name 进行投影,选取这两个字段,而不是将所有的字段取出再进行过滤,最后将两个结果进行关联。

缓存组件

缓存有buffer和cache,他们之间的区别详见:http://blog.csdn.net/caoshuming_500/article/details/7332561;

存在一个命中率问题,当查询语句时会先走缓存组件,如果没有再去查训数据文件。他有多种分类有表缓存,记录缓存,key缓存等

存储引擎

他主要和数据库物理文件打交道,查询,增加,删除,修改物理文件,现在有很多种存储引擎,各个存储引擎的优势各不一样,最常用的MyISAM,InnoDB,BDB,他们各自有各自的特点,如 InnoDB支持事务

上图中提到锁的管理,首先要明白锁的由来是为了支持并发保证数据的安全,如在查询的同时也在修改数据这样会出现我查询到的结果不对,请去理解脏读和欢读,一般常用的锁有共享锁和排他锁,按照锁的粒度又分为:表锁,行锁,死锁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值