Mysql高级篇(上)—— Mysql架构介绍(二)

21 篇文章 0 订阅

MySQL架构介绍(二)

逻辑架构

逻辑架构剖析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

MySQL8.0中SQL执行流程

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Linux环境下MySQL8.0中SQL执行原理

MySQL 8.0 中,查询缓存功能已被完全移除,因为命中率低,相同SQL语句可能因为长度的不同就会被程序认为不同的SQL语句不再查询缓存,而且查询缓存的开销往往超过其带来的性能提升
我们通过查看执行记录来分析:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6条和第7SQL语句执行记录都一样,并没有查询缓存的过程,因为 MySQL8.0已经删除查询缓存的功能了

在这里插入图片描述

MySQL语法顺序

MySQL书写顺序执行顺序
select 查询列表7
from 表11
join 表22
on 连接条件3
where 筛选条件4
group by分组列表5
having 分组后的筛选6
order by排序列表8
limit 偏移数,展示条目数9

Oracle中SQL执行流程(了解)

Oracle数据库中,SQL执行的流程通常包括以下几个步骤,从解析执行再到返回结果。这个过程可以大致分为 解析阶段、执行阶段和返回阶段

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

示例流程:

SELECT first_name, last_name FROM employees WHERE employee_id = 100;

在这里插入图片描述

简化的SQL执行流程:

| SQL解析 |—> | 执行计划 | —> | 执行数据操作 | —> | 返回查询结果 |


这个简化流程涵盖了Oracle SQL执行的主要阶段,每个阶段可以根据具体的SQL类型(查询、修改、删除等)有不同的实现细节。

数据库缓存池 buffer pool(了解)

在数据库系统中,特别是在关系型数据库管理系统RDBMS)中,缓冲池Buffer Pool) 是一个用于缓存数据页数据块的内存区域。它的主要作用是减少数据库系统对磁盘I/O的依赖,提高数据访问的性能。不同的数据库管理系统(如 OracleMySQLPostgreSQL 等)对缓冲池的实现和管理方式可能有所不同,但其基本概念和目的都是相似的。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

存储引擎

存储引擎数据库管理系统DBMS)中 负责存储、检索和管理数据的底层组件。不同的存储引擎具有不同的特性,适用于不同的应用场景。以下是一些常见的存储引擎介绍:

常见存储引擎简述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

InnoDB 和 MyISAM 两种存储引擎的特点对比

特点InnoDBMyISAM
事务支持支持事务,提供 ACID 特性,适用于需要高数据一致性的场景。不支持事务,适用于不需要事务管理的应用。
锁机制行级锁定,提高并发性能,适合高并发写操作。表级锁定,适合读操作为主的场景,但在高并发写操作中可能导致性能瓶颈。
外键支持支持外键,能够维护表间数据的完整性。不支持外键,表间关系需由应用程序逻辑维护。
崩溃恢复自动崩溃恢复机制,通过日志和双写缓冲区保障数据的完整性。崩溃恢复能力较弱,可能需要手动修复表格。
性能写操作性能优越,适合高并发事务处理;复杂特性使其在简单只读查询中略逊。读操作性能优越,特别是在不需要事务支持的场景;表级锁定会限制写操作的并发性能。
存储结构采用 聚簇索引,数据行与主键存储在一起;使用 .ibd 文件存储数据和索引。使用 独立的表结构文件(.MYD 和 .MYI)存储数据和索引,表结构较为简单。
应用场景适用于 金融系统、电子商务平台等需要事务支持和数据一致性 的场景。适用于 数据分析、日志记录等读密集型、不需要事务支持 的场景。

总结来说,InnoDB 适合用于高并发、需要数据一致性和事务管理的应用,而 MyISAM 更适合读密集型、不需要事务的应用场景。根据具体的应用需求,选择合适的存储引擎可以显著提升数据库的性能和可靠性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值