当前位置: 首页 > 科技观察

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

时间:2023-03-13 01:19:33 科技观察

本文主要从MySQL数据库的逻辑结构来了解和掌握MySQL的原理。只要稍微有点计算机相关的知识,相信都能看懂。1.通用逻辑架构首先给出一个逻辑架构图。这个图是给大家从宏观上分析理解的。从这张图中,可以得到以下信息:(1)mysql的架构大致可以分为四层。(2)第一层主要是不同客户端的连接。(3)第二层主要处理客户端的连接。(4)第三层处理客户端的sql语句。(5)第四层,存储引擎真正执行sql语句。既然了解了mysql的整体结构,对每一层的作用也有了大概的了解,下面我们就慢慢细化眼界,毕竟上图还是太笼统了。二、详细逻辑架构图看下图。与上图相比,这张图进行了部分细化,从上到下分为四层。第一层:这里我们可以看到连接了很多客户端,比如PHP、python、jdbc等等。第二层:这一层是链路层,对应第一张图中的连接处理层,主要处理客户端的连接,因为客户端有很多种。第三层:这一层是服务层。主要处理客户端请求的sql语句。如何处理?大致流程是先查询缓存,如果缓存中有,则直接取出返回。如果不是,则解析器解析,然后优化器进行优化。各个存储引擎提供的功能都集中在这一层,比如存储过程、触发器、视图等。第四层:这一层是引擎层,这里我们可以看到有几种不同的存储引擎,比如InnoDB、MyISAM、内存等。它真正负责MySQL中数据的存储和提取。如果我们使用jdbc来执行一条插入的sql语句,整个过程是如何执行的呢?首先jdbc属于第一层,通过第二层的连接处理连接到mysql服务器。接下来通过解析器Parse对sql语句进行处理,再通过优化器对sql语句进行优化,最后调用第四层存储引擎的接口,执行insert语句,将数据插入到文件或其他文件中系统。是不是很简单。通常在学习mysql的时候,老师都会介绍存储引擎。那时候你可能没有注意到他的重要性,但现在相信你应该意识到了。也就是说,服务层的那些功能都是由存储引擎提供的。不同的存储引擎可能提供不同的。如何比较这些存储引擎?我们列出一些指标进行比较:对于mysql数据库,默认是InnoDB,不支持哈希索引和全文索引。所以如果有一天你不喜欢它,你可以改变它,语句是SETdefault_storage_engine=<存储引擎名称>。