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

MySQL基本架构SQL语句在数据库框架中的执行流程数据库的三范式

MySQL基本架构图: 

MySQL主要分为Server层存储引擎层

Server层:

        连接器:连接客户端,获取权限,管理连接

        查询缓存(可选):在执行查询语句之前会先到查询缓存中查看是否执行过这条语句,如果执行过那就直接返回缓存中的结果,优点是命中缓存时效率很高,缺点是很难命中,只要任意一个表更新了,所有表的查询缓存都会清空,MySQL8.0已经删除了查询缓存

        分析器:对SQL语句进行词法分析和语法分析,判断语句是否合法

        优化器:对SQL语句进行优化,查看是否使用索引

        存储引擎层:存储数据,提取数据,架构是插件式的,支持InnoDB MyISAM等多个存储引擎。从MySQL5.5.5开始默认是InnoDB,但是在建表的时候可以使用engine = MyISAM 来执行存储引擎为MyISAM,不同存储引擎的存取方式不同,支持的功能也不同。

SQL语句在数据库框架中的执行流程:

  1. 连接器:通过链接器客户端与服务器建立连接
  2. 查询缓存:服务器拿到SQL,先查看是否可以使用缓存
  3. 分析器:如果没有命中缓存,通过分析其开始对语句进行词法分析、解析关键词、在进行语法分析、确定语句符合语法规范
  4. 优化器:对语句进行优化,选择索引,确定SQL执行方案
  5. 执行器:判断是否对表有执行权限,如果有权限,就打开表继续执行,根据表的存储引擎定义,通过这个引擎提供的接口获得数据并返回给客户端

数据库的三范式:

  • 第一范式:列的原子性,即数据库表的每一列多事不可分割的原子数据项
  • 第二范式:要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存储在仅依赖主关键字一部分的属性
  • 第三范式:任何非主属性不依赖于其他非主属性

http://www.kler.cn/a/526052.html

相关文章:

  • 【安全测试】测开方向学习遇到的问题记录
  • FAST-DDS and ROS2 RQT connect
  • Kubernetes 环境中的自动化运维实战指南
  • 在线课堂小程序设计与实现(LW+源码+讲解)
  • QT 通过ODBC连接数据库的好方法:
  • 免杀国内主流杀软的恶意样本分析
  • Pyside/Pyqt中QWebEngineView和QWebEnginePage的区别
  • 5.桥模式(Bridge)
  • 《大语言模型》综述学习笔记
  • lanqiaoOJ 2097:青蛙过河 ← 二分+前缀和+贪心
  • Vmware虚拟机内存扩展与管理
  • qt内部的特殊技巧【QT】
  • Python 梯度下降法(二):RMSProp Optimize
  • 2022 年 6 月大学英语四级考试真题(第 2 套)——纯享题目版
  • Big Bird:适用于更长序列的Transformer模型
  • Android 启动流程
  • 新版231普通阿里滑块 自动化和逆向实现 分析
  • 【25考研】考研366是否能进北航计算机复试?该怎么准备?
  • Ubuntu全面卸载mysql
  • unity使用内置videoplayer打包到安卓手机进行视频播放
  • linux asio网络编程理论及实现
  • 8.线程的同步和互斥
  • 大数据相关职位介绍之三(数据挖掘,数据安全 ,数据合规师,首席数据官,数据科学家 )
  • 解析静态链接
  • 我的毕设之路:(2)系统类型的论文写法
  • C++并发编程指南07