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的select语句执行流程 -> 正文阅读

[大数据]mysql的select语句执行流程

Mysql中select语句执行流程

1、mysql架构

在这里插入图片描述mysql结构(照片有点模糊,但是不妨碍理解。大家也可自行查找)
mysql主要功能模块:

1)连接器(连接/线程处理器):主要负责管理客户端连接,权限验证。
2)查询缓存:负责缓存查询结果。
3)解析器:对sql语句进行词法分析,语法分析,校验sql语句。
4)优化器:对解析器解析完成的sql生成执行计划,选择索引。
5)存储引擎:存储数据,负责提供读写接口。

其中1)至4)称为mysql服务层,5)称为mysql的存储引擎层。

2、select语句执行流程

	有了上面图的理解,大家大致对mysql的结构有了大致的了解。
	下面以对select语句的执行流程进行简单介绍, 假定sql语句:select * from table

1)建立连接

  mysql -h ip  -p port -u user -p
  password
  通过上面的语句和mysql服务器建立连接。如果用户名和密码不对,则会显示“Access denied for user” 的提示。

2)查询缓存

	建立完连接之后,select语句执行到第二步,查询缓存。之前执行的sql语句结果会以key-value对的形式被缓存到内存中。key是sql语句,value是查询结果。如果select语句在key中,则直接返回value给客户端。
	如果缓存中查询不到,就会继续执行后续阶段。执行完后将结果缓存到内存中,用于下次查询。(缓存失效非常频繁,例如update之后则会清空缓存)。

3)解析器

	对于缓存失效之后,则解析器会对sql语句进行分析。先对sql语句进行词法分析,分析select * from table是否符合mysql的语法规范。然后对sql语句进行语法分析,如果sql语句不对,则会显示You have an error in your SQL syntax的错误提醒。请仔细检验sql语句语法是否规范。

4)优化器

	经过解析器解析之后,mysql就知道需要做什么。在开始执行之前,优化器根据表中的索引选择使用哪个索引,或者是join时选择表连接的顺序。从而选择最优方案。

5)优化器

经过解析器之后,mysql知道做什么,经过优化器之后,mysql知道怎么做。
开始执行前,mysql先判断用户是否拥有查询权限,如果没有权限,返回没有权限的错误。即使是命中缓存,在返回结果时,也会做权限验证。最终返回查询结果。

3、总结

mysql中的select语句的执行流程大致如上所述。

以上内容仅是个人理解,如果理解有不对的地方欢迎指出,大家共同理解。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-29 13:06:54  更:2021-10-29 13:08:37 
 
开发: 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年11日历 -2024/11/24 4:39:36-

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