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. 执行器:判断是否对表有执行权限,如果有权限,就打开表继续执行,根据表的存储引擎定义,通过这个引擎提供的接口获得数据并返回给客户端

数据库的三范式:

  • 第一范式:列的原子性,即数据库表的每一列多事不可分割的原子数据项
  • 第二范式:要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存储在仅依赖主关键字一部分的属性
  • 第三范式:任何非主属性不依赖于其他非主属性
相关推荐
许彰午9 小时前
01-Oracle数据库简介与版本选择
数据库·oracle
菜鸟~noob2339 小时前
【电子战】第三季预告—波武器与电子系统强力毁伤
开发语言·数据库·matlab·电子战
hasty11 小时前
policy.xml 在,不代表策略生效:ImageMagick 补丁给安全配置验收的提醒
xml·mysql·安全
Seraphina3611 小时前
SQL注入(二)盲注
网络·数据库·经验分享·笔记·sql
Dawson Zhu11 小时前
《Agentic Design Patterns》第 1 章导读:提示词链(Prompt Chaining)
人工智能·语言模型·架构·aigc·agi
feiyu_gao12 小时前
Mindcraft:从个人实践到可复用模式集
架构·aigc·ai编程
abigalexy12 小时前
Claude Code从零搭建新项目全流程AI实现-宠物生命周期管理App
架构·aigc·ai编程
盟接之桥12 小时前
AI助手:你的7×24小时智能管家——让异常预警无处不在
大数据·网络·数据库·人工智能·制造·ai编程
waoooqwe12 小时前
问卷样本真实吗
大数据·数据库·算法·数据分析
可乐ea13 小时前
Agent 评测换判据:用终态数据库状态判定任务是否完成
数据库·ui·oracle·mcp工具·agent评测·终态断言·智能体可靠性