IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL概览 -> 正文阅读

[大数据]MySQL概览

mysql是瑞典的mysqlAB公司开发的关系型数据库管理系统,它比较适合OLTP的应用场景,支持innodb、mylsam、mermory、archive等多种存储引擎,在各个行业有着广泛的应用。
在这里插入图片描述

根据上图的可以看到mysql的结构全貌,从上到下各个模块以及对应的作用如下:
Connectors:数据库连接驱动,向外部提供数据库操作入口;支持多种驱动方式和多语言支持(对外门户)。
Connection Pool:mysql的连接管理采用的是线程模型(postgresql采用的是进程模型),当有一个新的客户端请求连接时,服务端会申请一个线程负责与客户端进行通信。连接线程池负责统一协调管理外部连接;进行用户权鉴、连接线程管理、连接数控制等。
SQL Interface:执行sql语句的标准接口定义,数据库范式对外的程序映射?
Parser:语法解析器,负责sql语句的解析。
Optimizer:sql优化器,执行的sql语句通过解析后会进行sql优化,根据sql语义选择性能最好的执行方式对已有语句进行翻译,保障执行sql的最优性能。
caches&buffer:mysql的全局缓存,存储近期访问数据的索引以及数据。
Pluggable storage engines:存储层插件集合,存储引擎层是以插件的方式进行管理的,不同的存储引擎可以进行切换,常用的存储引擎有mylsam和innodb。

有了上述大致结构的铺垫,我们先直观看一下一个sql从客户端发送请求到数据库接受响应都经历了什么,以及在上述结构中各个模块都做了哪些事情。

1.客户端通过Connectors驱动程序发送sql请求,并由ConnectPool最先接收。ConnectPool接收后会进行一系列的连接验证,包含是否有可用的连接资源、当前用户密码是否正确,是否具备访问数据库的权限。

2.(早起版本中默认开启数据缓存功能,以sql语句为key,先通过Cache取数据,如果命中则直接返回。由于命中率比较低,后续版本中默认关闭该功能)

3.通过1中的连接验证后,sql语句进一步来到了Parser这里进行语法解析,构造对应的语法树,这里的语法树可以理解为将sql这种字符串形式转换为程序可识别的命令,日常工作中如果我们写错了sql会有对应的错误提示,就是通过这里解析识别出来的。

4.查询优化器会根据sql要做的事情进行优化,选择性能较好的方式进行执行。比如调整join语句中表的连接顺序、去除无效的条件、当表中有多个索引时决定选择哪一个等等。一般数据库的优化器包括基于成本的优化和基于规则优化,mysql采用的是基于成本低优化模式,即将每个查询的执行动作都赋予一定的权重,根据评估查询过程中各个环节所耗费的加权总和来评估性能,选择最优的方式。

5.sql语句作为查询命令通过API查询接口执行引擎读取数据。

6.最后由存储引擎负责提供数据。
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-07-03 10:53:18  更:2022-07-03 10:54:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 2:41:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码