当前位置: 首页 > news >正文

一条SQL查询语句的执行流程(MySQL)


第一步:连接器(负责跟客户端建立连接、获取权限、维持和管理连接)

第二步:查询缓存

之前执行过的查询,MySQL以"Key - Value"的形式存在内存(key为SQL,value为结果集);
只要对该表有一个更新,则这个表上的查询缓存都会被清空;


第三步:分析器(词法和语法分析)

词法分析:通过“select”,识别出为查询;通过“T”,识别出表名;通过条件“ID”,识别出ID那一列;等等;
语法分析:如果语法有误,则提示“You have an error in your SQL syntax”;


第四步:优化器

决定用哪个索引;联查表连接顺序;条件执行优先级 ,等等;


第五步:执行器 (执行SQL)

第六步:存储引擎(提供读写接口,供执行器调用并获取结果集)

首先会判断你是否有该权限;
如果命中查询缓存,则会在返回结果的时候进行权限验证;

http://www.lryc.cn/news/481077.html

相关文章:

  • linux基础——详细篇
  • 大数据学习10之Hive高级
  • MongoDB笔记01-概念与安装
  • ollama + fastGPT + m3e 本地部署指南
  • 【设计模式系列】享元模式(十五)
  • 2024大兴区火锅美食节即将开幕——品味多元火锅,点燃冬季消费热潮
  • 可视化建模与UML《类图实验报告》
  • VS2022项目配置笔记
  • springboot029基于springboot的网上购物商城系统
  • 网站访问在TCP/IP四层模型中的流程
  • C++笔记---包装器
  • 算力与能量的全分布式在线共享来降低5G网络的用电成本。基于随机对偶次梯度法的多时隙约束耦合问题解耦方法示例;随机对偶次梯度法的在线管理策略
  • 海鲜特写镜头视频素材去哪找 热门视频素材网站分享
  • JMM内存模型(面试回答)
  • Greiner 经典力学(多体系统和哈密顿力学)第十二章 学习笔记(Rotation About a Point)
  • SQL进阶技巧:如何计算复合增长率?
  • 十一:java web(3)-- Spring框架 -- Spring简介
  • ts 如何配置引入 json 文件
  • LeetCode面试经典150题C++实现,更新中
  • 基于springboot的家装平台设计与实现
  • CSS的配色
  • Parallax.js:让智能设备视差效果更智能、更自然
  • 一文熟悉新版llama.cpp使用并本地部署LLAMA
  • vue/react做多语言国际化的时候,在语言配置中不同的语言配置不同的字体,动态引入scss里面
  • Unity——鼠标点击信息和当前位置获取
  • vue 2的v-***关键字作用及使用场景
  • Matlab实现鲸鱼优化算法优化随机森林算法模型 (WOA-RF)(附源码)
  • 【Android】ubutun 创建Androidstudio桌面快捷方式
  • javascript 流程控制,数组【知识点整理】
  • 2.索引:SQL 性能分析详解