MySQL架构介绍

news/2024/11/9 9:42:04/

MySQL架构介绍

和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。

alt

1. 连接层

最上层是一些客户端和连接服务,包含本地socket通信和大多数基于客户端/服务端工具实现的类似于tcp/ip的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。

2. 服务层

第二层架构主要完成大部分的核心服务功能, 包括查询解析、分析、优化、缓存、以及所有的内置函数,所有跨存储引擎的功能也都在这一层实现,包括触发器、存储过程、视图等

3.引擎层

存储引擎层,存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API与存储引擎进行通信。不同的存储引擎具有的功能不同,这样我们可以根据自己的实际需要进行选取。

4.存储层

数据存储层,主要是将数据存储在运行于该设备的文件系统之上,并完成与存储引擎的交互。

更符合程序员审美的MySQL服务器逻辑架构图

alt

查询说明

mysql的查询流程大致是:

  1. mysql客户端通过协议与mysql服务器建连接,发送查询语句,先检查查询缓存,如果命中,直接返回结果,否则进行语句解析
  2. 有一系列预处理,比如检查语句是否写正确了,然后是查询优化(比如是否使用索引扫描,如果是一个不可能的条件,则提前终止),生成查询计划,然后查询引擎启动,开始执行查询,从底层存储引擎调用API获取数据,最后返回给客户端。怎么存数据、怎么取数据,都与存储引擎有关。
  3. 然后,mysql默认使用的BTREE索引,并且一个大方向是,无论怎么折腾sql,至少在目前来说,mysql最多只用到表中的一个索引。

本文由 mdnice 多平台发布


http://www.ppmy.cn/news/583698.html

相关文章

文献学习-联合抽取-Joint entity and relation extraction based on a hybrid neural network

目录 1、Introduction 2、Related works 2.1 Named entity recognition 2.2 Relation classification 2.3 Joint entity and relation extraction 2.4 LSTM and CNN models On NLP 3、Our method 3.1 Bidirectional LSTM encoding layer 3.2 Named entity recogniton …

【面试题16】Linux下面如何查看CPU,磁盘,内存,网络等资源使用情况

文章目录 一、概览二、top命令2.1 使用方法2.2 输出解释 三、htop命令3.1 安装方法3.2 使用方法3.3 输出解释 四、free命令4.1 使用方法4.2 输出解释 五、uptime命令5.1 使用方法5.2 输出解释 六、查看磁盘情况6.1 df命令6.2 du命令 七、查看网络情况7.1 iftop命令7.2 nload命令…

展览展示设计中的色彩与主題

在展览展示设计中,要根据不同的展现主题、企业文化、环境、时节等诸多要素,在颜色应用上作出不同的艺术处理,这样才能到达预期的规划作用。 1.使用颜色的温度感来体现主题特征。颜色是具有温度感的。暖色系在人的心理上易发生舒展的感觉&…

鸡汤之力

1、曾经有一段时间,你心情低落,甚至懒得拉开窗帘,看着窗外的阳光。因此你当然也忘了去看看,窗台上那一盆每天都需要喝水的玛格丽特。如此不知过了多久,总算有一天,你度过了心情的低潮,同时也想起…

第二十三章

第二十三章 曲则全,枉则正,洼则盈,敝则新,少则得,多则惑。是以圣人执一,为天下牧。不自视故彰;不自见故明;不自伐故有功;弗矜故能长。夫唯不争,故莫能与之争。…

C#增删改小总结

首先建立数据库中相应的表 create database mydbgouse mydbgocreate table Productor --汽车厂商( Prod_Code varchar(50) primary key, --厂商编号 Prod_Name varchar(50) not null --厂商名称)gocreate table Brand --品牌( Brand_Code varchar(50) primary key, --品牌编号 …

Python爬虫练习笔记——爬取一本小说并保存为txt文件

最近竟然开始磕起了黄晓明和尹正的CP!!! 但是万恶的爱某艺不好好更新剧集,居然搞起了超前点映… WTF???有什么是我这个贫穷而又尊贵的VIP用户不能看的吗??? …

婚宴座位图html5,20桌婚宴座位安排图(婚宴座位顺序如何安排?)

酒席上如何安排座次 这个可分为正式的大型和分正式的小型宴会: 正式或大型宴会: 正式或大型宴会一般都排席位,也可只排部分客人席位,其他人员只排桌次或自由入座。 1、宴会席位主要是根据出席人员礼宾次序安排的,同时还要综合考虑政治关系、语言使用、宗教信仰和专业等诸因…