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

news/2025/2/3 23:25:42/

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.ppmy.cn/news/1569084.html

相关文章

SQL UCASE() 函数详解

SQL UCASE() 函数详解 在SQL中,UCASE() 函数是一个非常有用的字符串处理函数,它可以将字符串中的所有小写字母转换为大写字母。本文将详细介绍UCASE() 函数的用法、语法、示例以及其在实际应用中的优势。 一、UCASE() 函数简介 UCASE() 函数是SQL标准…

经典蓝牙协议:【A2DP,HSP/HFP,OBEX/OPP】

经典蓝牙,也称为传统蓝牙,通常指的是蓝牙协议4.0以下的版本,包括v1.1、1.2、2.0、2.1和3.0等。这些版本的蓝牙协议支持音频(如HFP/HSP, A2DP)和数据(如SPP, HID, OPP, PBAP等)两大类协议。其中&…

Games104——网络游戏的架构基础

这里写目录标题 多人网络游戏面临的挑战网络协议OSI模型SocketTCP/IP协议UDP协议基于UDP的可靠连接自动重复的要求Forward Error Correction FECXOR-FEC(异或运算)Reed-Solomon Codes 时钟同步&RPCRTTNTPRPCStubs 网络拓扑P2PDedicated Server 快照同…

97,【5】buuctf web [极客大挑战 2020]Greatphp

进入靶场 审代码 <?php // 关闭所有 PHP 错误报告&#xff0c;防止错误信息泄露可能的安全隐患 error_reporting(0);// 定义一个名为 SYCLOVER 的类 class SYCLOVER {// 定义类的公共属性 $sycpublic $syc;// 定义类的公共属性 $loverpublic $lover;// 定义魔术方法 __wa…

【Leetcode 每日一题】81. 搜索旋转排序数组 II

问题背景 已知存在一个按非降序排列的整数数组 n u m s nums nums&#xff0c;数组中的值不必互不相同。 在传递给函数之前&#xff0c; n u m s nums nums 在预先未知的某个下标 k ( 0 < k < n u m s . l e n g t h ) k\ (0 < k < nums.length) k (0<k<…

北京大学与智元机器人联合实验室发布OmniManip:显著提升机器人3D操作能力

近年来视觉语⾔基础模型&#xff08;Vision Language Models, VLMs&#xff09;在多模态理解和⾼层次常识推理上⼤放异彩&#xff0c;如何将其应⽤于机器⼈以实现通⽤操作是具身智能领域的⼀个核⼼问题。这⼀⽬标的实现受两⼤关键挑战制约&#xff1a;1. VLM 缺少精确的 3D 理解…

揭秘算法 课程导读

目录 一、老师介绍 二、课程目标 三、课程安排 一、老师介绍 学问小小谢 我是一个热爱分享知识的人&#xff0c;我深信知识的力量能够启迪思考&#xff0c;丰富生活。 欢迎每一位对知识有渴望的朋友&#xff0c;如果你对我的创作感兴趣&#xff0c;或者我们有着共同的兴趣点&…

基于OSAL的嵌入式裸机事件驱动框架——整体架构调度机制

参考B站up主【架构分析】嵌入式祼机事件驱动框架 感谢大佬分享 任务ID &#xff1a; TASK_XXX TASK_XXX 在系统中每个任务的ID是唯一的&#xff0c;范围是 0 to 0xFFFE&#xff0c;0xFFFF保留为SYS_TSK_INIT。 同时任务ID的大小也充当任务调度的优先级&#xff0c;ID越大&#…