【MySQL】一条 SQL 查询语句在数据库中的执行流程 | SQL语句中各个关键字的执行顺序

创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!

给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ

在这里插入图片描述


目录

  • 一条 SQL 查询语句在数据库中的执行流程
    • 在这里插入图片描述
  • SQL语句的执行顺序

一条 SQL 查询语句在数据库中的执行流程

1.在客户端与 MySQL 服务端建立连接(TCP 连接)后,应用程序会把SQL语句发送给服务器端执行

2.查询缓存,如果查询缓存是打开的(通过 query_cache_type 参数设置是否打开),服务器在接收到查询请求后并不会直接去数据库查询,而是在数据库的查询缓存中找是否有相对应的查询数据。

数据库中的查询缓存以键值对的形式存储在内存中

如果存在,则直接返回给客户端。只有缓存不存在时,才会进行下面的操作(MySQL8.0 遗弃缓存)


3.查询优化处理,生成执行计划。这个阶段主要包括解析SQL、预处理、优化SQL执行计划

解析 SQL:数据库对 SQL 语句进行语法解析,判断 SQL 语句的语法语义是否正确并生成语法树

预处理:判断 SQL 语句中的表或字段是否存在或歧义,展开 SQL 语句中的 *

优化 SQL:指定 SQL 语句的执行计划,比如是否使用索引、联合查询基准表

4.MySQL 执行器调用存储引擎根据相应的执行计划完成整个查询,并写入查询缓存中

5.将查询结果返回给客户端

在这里插入图片描述

SQL语句的执行顺序

1.from子句组装来自不同数据源的数据(笛卡尔积计算)

2.应用on筛选器

3.执行join

4.where子句基于指定的条件对记录行进行筛选

5.group by子句将数据划分为多个分组

6.【聚集函数进行计算】

7.使用 having子句筛选分组

8.select的字段

9.distinct 去除重复行

10.order by 对结果集进行排序

11.limit指定范围


在这里插入图片描述

大家的点赞、收藏、关注将是我更新的最大动力! 欢迎留言或私信建议或问题。
大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容!如果本文哪里有错误的地方还请大家多多指出(●'◡'●)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/769628.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

知识图表示学习中的负抽样研究综述

摘要 知识图表示学习(KGRL)或知识图嵌入(KGE)在知识构建和信息探索的人工智能应用中起着至关重要的作用。这些模型旨在将知识图中的实体和关系编码到低维向量空间中。在KGE模型的训练过程中&#xff0c;使用正样本和负样本是区分的必要条件。然而&#xff0c;直接从现有的知识…

鸿蒙NXET实战:高德地图定位SDK【获取Key+获取定位数据】(二)

如何申请key 1、创建新应用 进入[控制台]&#xff0c;创建一个新应用。如果您之前已经创建过应用&#xff0c;可直接跳过这个步骤。 2、添加新Key 在创建的应用上点击"添加新Key"按钮&#xff0c;在弹出的对话框中&#xff0c;依次&#xff1a;输入应用名名称&…

Muduo类详解之EventLoop

最核⼼的部分就是 EventLoop 、 Channel 以及 Poller 三个类&#xff0c;其中 EventLoop 可以看作是对业务线程的封装&#xff0c;⽽ Channel 可以看作是对每个已经建⽴连接的封装&#xff08;即 accept(3) 返回的⽂件描述符&#xff09; EventLoop class EventLoop { p…

解决SLF4J: Class path contains multiple SLF4J bindings.

JDK版本&#xff1a;jdk17 IDEA版本&#xff1a;IntelliJ IDEA 2022.1.3 SpringBoot 版本&#xff1a;v2.5.7 maven版本&#xff1a;3.6.3 文章目录 问题描述&#xff1a;原因分析&#xff1a;解决方案&#xff1a;参考资料&#xff1a; 问题描述&#xff1a; 当SpringBoot项目…

并发VS并行

参考文章 面试必考的&#xff1a;并发和并行有什么区别&#xff1f; 并发&#xff1a;一个人同时做多件事&#xff08;射击游戏队友抢装备&#xff09; 并行&#xff1a;多人同时处理同一件事&#xff08;射击游戏敌人同时射击对方&#xff09;

学习数据结构:算法的时间复杂度和空间复杂度

一、算法的复杂度 衡量一个算法的好坏&#xff0c;一般是从时间和空间两个维度来衡量的&#xff0c;即时间复杂度和空间复杂度。 时间复杂度主要衡量一个算法的运行快慢&#xff0c;而空间复杂度主要衡量一个算法运行所需要的额外空间。 算法的时间复杂度 算法中的基本操作的…

SAP BAS中Fiori开发的高阶功能(storyboard, navigation, guided development, variant)

1. 前言 在之前的几篇文章中&#xff0c;我介绍了SAP BAS的一些基本功能&#xff0c;包括账户申请&#xff0c;创建工作区&#xff0c;git的使用以及如何step-by-step去创建出你的第一个Fiori项目等等。在本篇中&#xff0c;我将进一步介绍一些在开发Fiori应用程序时会用到的高…

JAVA学习笔记19(面向对象编程)

1.面向对象编程 1.1 类与对象 1.类与对象的概念 ​ *对象[属性]/[行为] ​ *语法 class cat {String name;int age; }main() {//cat1就是一个对象//创建一只猫Cat cat1 new Cat();//给猫的属性赋值cat1.name "123";cat1.age 10; }​ *类是抽象的&#xff0c;…

前端使用正则表达式进行校验

一、定义 设计思想是用一种描述性的语言定义一个规则&#xff0c;凡是符合规则的字符串&#xff0c;我们就认为它“匹配”了&#xff0c;否则&#xff0c;该字符串就是不合法的。 在 JavaScript中&#xff0c;正则表达式也是对象&#xff0c;构建正则表达式有两种方式&#x…

【可用Claude Opus模型】Claude3国内镜像站,亲测完全超越GPT-4(可用Claude Opus,官网价值20刀)

#今天在知乎看到一个问题&#xff1a;“平民不参与内测的话没有账号还有机会使用Claude 3吗&#xff1f;” 从去年GPT大火到现在&#xff0c;关于GPT的消息铺天盖地&#xff0c;真要有心想要去用&#xff0c;途径很多&#xff0c;别的不说&#xff0c;国内GPT的镜像站到处都是…

探索LLaMA模型:架构创新与Transformer模型的进化之路

引言 在人工智能和自然语言处理领域&#xff0c;预训练语言模型的发展一直在引领着前沿科技的进步。Meta AI&#xff08;前身为Facebook&#xff09;在2023年2月推出的LLaMA&#xff08;Large Language Model Meta AI&#xff09;模型引起了广泛关注。LLaMA模型以其独特的架构…

视频批量爬虫下载工具|可导出视频分享链接|抖音视频提取软件

便捷的视频批量爬虫软件操作指南 抖音视频下载界面图解 主要功能&#xff1a; 关键词批量提取视频和单独视频提取&#xff0c;提取后下载功能。 功能解析&#xff1a; 1. 关键词批量采集视频的解析 对特定关键词进行搜索和视频提取&#xff0c;例如输入“汽车配件”&#x…

2024年洗地机综合实力排行榜:谁才是真正的洗地神器?

近年来&#xff0c;洗地机在行业里&#xff0c;它集合了扫地和拖地以及自动清洁和除菌的功能&#xff0c;备受人们的喜爱&#xff0c;尤其是平时忙于工作并没有多少时间清洁家务的用户&#xff0c;但是对于第一次接触洗地机的用户来说&#xff0c;怎么选购洗地机也是个问题&…

初识React(一)从井字棋游戏开始

写在前面&#xff1a; 磨磨唧唧了好久终于下定决心开始学react&#xff0c;刚刚接触感觉有点无从下脚...新的语法新的格式跟vue就像两种物种...倒是很好奇路由和store是怎么实现的了~v~&#xff0c;一点一点来吧&#xff01;&#xff01;&#xff01; (一)创建项目 使用vite…

蓝桥杯算法 - DP

上一篇&#xff1a;[[蓝桥杯算法-排序、递归、全排列]] 动态规划&#xff08;dp&#xff09; dp即动态规划&#xff0c;常用于&#xff1a;数学&#xff0c;计算机科学&#xff0c;管理学&#xff0c;经济和生物信息学。 dp在生活中也很常见&#xff0c;如&#xff1a;你今天…

今天聊聊Docker

在数字化时代&#xff0c;软件应用的开发和部署变得越来越复杂。环境配置、依赖管理、版本控制等问题给开发者带来了不小的挑战。而Docker作为一种容器化技术&#xff0c;正以其独特的优势成为解决这些问题的利器。本文将介绍Docker的基本概念、优势以及应用场景&#xff0c;帮…

1.4.2 练习

一、颠倒三角形 题目&#xff1a;修改顶点着色器让三角形上下颠倒 更改顶点着色器代码如下&#xff1a; #version 330 corelayout (location 0) in vec3 aPos; //位置变量的属性位置值为0 layout (location 1) in vec3 aColor; //颜色变量的属性位置值为1out vec3 ourColo…

项目配置之道:优化Scrapy参数提升爬虫效率

前言 在当今信息时代&#xff0c;数据是无处不在且无比重要的资源。为了获取有效数据&#xff0c;网络爬虫成为了一项至关重要的技术。Scrapy作为Python中最强大的网络爬虫框架之一&#xff0c;提供了丰富的功能和灵活的操作&#xff0c;让数据采集变得高效而简单。本文将以爬…

线程和进程有什么区别?

1、典型回答 进程&#xff08;Process&#xff09;和线程&#xff08;Thread&#xff09;是操作系统中两个重要的概念&#xff0c;都是用来执行任务的&#xff0c;它们的定义如下&#xff1a; 进程是指计算机中正在运行的程序的实例。每个进程都有自己的地址空间、内存、文件…

生成词云...

import wordcloud import jieba import PIL import numpy as np import matplotlib.pyplot as plt import jieba.analyse image_background PIL.Image.open(/home/back/pythonclass/11.jpg) #遮罩 MASK np.array(image_background) txtopen("/home/back/pythoncla…