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

news/2025/1/31 16:45:31 标签: mysql, 架构, 数据库

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.niftyadmin.cn/n/5838763.html

相关文章

Linux-Robust-Futex学习笔记

robust futex 简介 概述: 为了保证futex的robustness,添加了一种能够用于处理进程异常终止时锁状态的机制,就是当拥有锁的线程异常终止时,该线程能够将锁进行释放 基本原理: 每个线程都有一个私有的robust list&…

智云-一个抓取web流量的轻量级蜜罐-k8s快速搭建教程

智云-一个抓取web流量的轻量级蜜罐-k8s快速搭建教程 github地址 https://github.com/xiaoxiaoranxxx/POT-ZHIYUN k8s搭建教程 首先下载代码文件 git clone https://github.com/xiaoxiaoranxxx/POT-ZHIYUN.git cd POT-ZHIYUN编译镜像 代码相关文件在github https://github.com/x…

使用DeepSeek API生成Markdown文件

DeepSeek技术应用与代码实现 一、DeepSeek简介 DeepSeek是一款强大的人工智能写作助手,能够根据用户输入的提示(Prompt)快速生成高质量的文章。它不仅支持批量生成文章,还能通过智能分段、Markdown转HTML等功能优化内容。此外&…

程序代码篇---Python随机数

文章目录 前言Python随机数函数random.random()random.randint(a,b)random.randrange(start,stop[,step])random.uniform(a,b)random.choice(sequence)random.sample(population,k)random.shuffle(x[,random])random.seed(aNone) 总结 前言 以上就是今天要讲的内容&#xff0c…

gesp(C++六级)(7)洛谷:P10376:[GESP202403 六级] 游戏

gesp(C六级)(7)洛谷:P10376:[GESP202403 六级] 游戏 题目描述 你有四个正整数 n , a , b , c n,a,b,c n,a,b,c,并准备用它们玩一个简单的小游戏。 在一轮游戏操作中,你可以选择将 n n n 减去 a a a&am…

进阶数据结构——高精度运算

目录 前言一、高精度运算的定义与背景二、高精度运算的实现方式三、高精度运算的算法实现四、高精度运算的应用场景五、代码模版(c)六、经典例题1.[高精度加法](https://www.lanqiao.cn/problems/1516/learning/?page1&first_category_id1&name…

SpringBoot Web开发(SpringMVC)

SpringBoot Web开发(SpringMVC) MVC 核心组件和调用流程 Spring MVC与许多其他Web框架一样,是围绕前端控制器模式设计的,其中中央 Servlet DispatcherServlet 做整体请求处理调度! . 除了DispatcherServletSpringMVC还会提供其他…

Hypium+python鸿蒙原生自动化安装配置

Hypiumpython自动化搭建 文章目录 Python安装pip源配置HDC安装Hypium安装DevEco Testing Hypium插件安装及使用方法​​​​​插件安装工程创建区域 Python安装 推荐从官网获取3.10版本,其他版本可能出现兼容性问题 Python下载地址 下载64/32bitwindows安装文件&am…