|
|
51CTO旗下网站
|
|
移动端

3分钟学会MySQL数据库的逻辑架构原理

这篇文章主要是从mysql数据库的逻辑架构来认识掌握mysql的原理。只要是稍微有一点计算机的相关知识相信都能看明白。

作者:Java的架构师技术栈来源:今日头条|2019-11-20 10:38

这篇文章主要是从mysql数据库的逻辑架构来认识掌握mysql的原理。只要是稍微有一点计算机的相关知识相信都能看明白。

一、笼统的逻辑架构

先给出一张逻辑架构图,这张图是让你从宏观的角度来分析认识一下。

3分钟学会mysql数据库的逻辑架构原理

从这张图你可以获取到如下的信息:

(1)mysql架构大致上可以划分为四层。

(2)第一层,主要是不同客户端的连接。

(3)第二层,主要是处理客户端的连接。

(4)第三层,处理客户端的sql语句。

(5)第四层,存储引擎真实的执行sql语句。

现在你已经了解了mysql的整体架构,而且也大致明白了每一层是干嘛的,现在我们把目光逐渐细化,毕竟上面这张图还是太笼统。

二、细化的逻辑架构图

看下面这张图。

3分钟学会mysql数据库的逻辑架构原理

​这张图相比较前面那张图就细化了一部分,从上到下还是分为了四层,

第一层:在这里我们可以看出,连接的客户端有很多,PHP、python、jdbc等等都有。

第二层:这一层是链接层,对应于第一张图的连接处理层,主要是处理客户端的连接,这是因为客户端很多种类很多。

第三层:这一层是服务层。主要是处理客户端请求的sql语句,如何处理呢?大致流程就是,先查询缓存,如果缓存有,那就直接拿出来返回。如果没有那就解析器解析,然后优化器优化,各个存储引擎提供的功能都集中在这一层,如存储过程,触发器,视图等。

第四层:这一层是引擎层,在这里我们可以看到有好几种不同的存储引擎,比如InnoDB,MyISAM,memory等等。真正负责MySQL中数据的存储和提取。

假如说我们使用jdbc执行一条插入的sql语句,整个流程是如何执行的呢?

首先,jdbc属于第一层,通过第二层的连接处理连接到mysql服务器,接下来,通过解析器对sql语句进行解析,然后再通过优化器对sql语句进行优化,最终调用第四层的存储引擎的接口,执行插入语句,将数据插入到文件或者是其他文件系统上。

是不是很简单。通常在学习mysql的时候,老师都会介绍到存储引擎。那时候可能你还没有注意到他的重要性,现在相信你应该体会到了。也就是说服务层的那些功能,都是由存储引擎提供的。不同的存储引擎提供的可能是不一样的。如何去比较这些存储引擎呢?我们列了一些指标去对比一下:

3分钟学会mysql数据库的逻辑架构原理

对于mysql数据库来说,默认的就是InnoDB,它不能支持哈希索引还有全文索引。因此如果有一天你不喜欢它了也可以去更换,语句就是SET default_storage_engine=< 存储引擎名 >。

【编辑推荐】

  1. 记一次生产MySQL数据库批量迁移表索引
  2. 全面讲解分布式数据库架构设计特点
  3. 详解MySQL如何按表创建千万级的压测数据
  4. 深度剖析阿里数据库内核:基于HLC的分布式事务实现
  5. PostgreSQL数据库入门
【责任编辑:华轩 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

骨干网与数据中心建设案例

骨干网与数据中心建设案例

高级网工必会
共20章 | 捷哥CCIE

387人订阅学习

中间件安全防护攻略

中间件安全防护攻略

4类安全防护
共4章 | hack_man

140人订阅学习

CentOS 8 全新学习术

CentOS 8 全新学习术

CentOS 8 正式发布
共16章 | UbuntuServer

286人订阅学习

读 书 +更多

人月神话:32周年中文纪念版

在软件领域,很少能有像《人月神话》一样具有深远影响力并且畅销不衰的著作。Brooks博士为人们管理复杂项目提供了最具洞察力的见解。既有很...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微