首页 > 数据库 >Mysql高级篇(上)—— Mysql架构介绍(二)

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

时间:2024-09-06 09:22:19浏览次数:10  
标签:存储 缓存 架构 Mysql 高级 引擎 SQL MySQL 执行

Mysql高级篇(上)

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 更适合读密集型、不需要事务的应用场景。根据具体的应用需求,选择合适的存储引擎可以显著提升数据库的性能和可靠性。

标签:存储,缓存,架构,Mysql,高级,引擎,SQL,MySQL,执行
From: https://blog.csdn.net/weixin_44666786/article/details/141786749

相关文章

  • 高级编程--第四章 输入和输出处理
    1、目标了解输入输出的概念使用FIle类操作文件或目录理解流的概念及分类会使用字节流读写文本文件会使用字符流读写文本文件会使用字节流读写二进制文件使用序列化和反序列化保持和恢复对象信息2、javaI/O2.1文件什么是文件?相关记录或放在一起的数据的集合文件......
  • 首发 最新AWVS/Acunetix Premium V24.8高级版漏洞扫描器(最新版)Windows/Linux下载
    前言AcunetixPremium是一种Web应用程序安全解决方案,用于管理多个网站、Web应用程序和API的安全。集成功能允许您自动化DevOps和问题管理基础架构。AcunetixPremium:全面的Web应用程序安全解决方案Web应用程序对于企业和组织与客户、合作伙伴和员工的联系至关重要。......
  • MySQL中 VARCHAR 可设置的最大长度是多少?
    在使用MySQL的过程中,在存储字符串时,大家或许都有过这样或那样的困惑,譬如:1. 对于固定长度的字符串,为什么推荐使用CHAR来存储?2. VARCHAR可设置的最大长度是多少?3. 给定一个字符串,怎么知道它的空间使用情况?4. 创建索引时,提示“Indexcolumnsizetoolarge.Themaxim......
  • MySQL 源码|67 - 语法解析(V2):数值字面值|V20240905
    目录文档:MySQL源码|源码剖析文档目录源码位置(版本=MySQL8.0.37):/sql/sql_yacc.yy前置文档:MySQL源码|33-语法解析:bison基础语法规则根据MySQL源码|21-词法解析:状态转移逻辑梳理中梳理的MySQL词法解析逻辑,有如下终结符与数值相关:终结符名称终结符表示内容NUM......
  • KTV收银手机版——未来之窗行业应用跨平台架构
     一、KTV手机收银:1.移动性强:收银员可以随时随地使用手机进行收银操作,不再局限于固定的收银台,能够更灵活地为顾客服务,例如在包房内为顾客结账。2.快速响应:能够更迅速地处理顾客的结账需求,减少顾客等待时间,提升顾客满意度。3.操作简便:手机界面通常设计简洁直观,易于操作......
  • mysqldump命令详解
    在日常维护工作当中经常会需要对数据进行导出操作,而mysqldump是导出数据过程中使用非常频繁的一个工具;它自带的功能参数非常多,文章中会列举出一些常用的操作,在文章末尾会将所有的参数详细说明列出来。 语法:默认不带参数的导出,导出文本内容大概如下:创建数据库判断语句-删除表-......
  • mysql主备环境同机搭建
    社区版下载地址:downloads.mysql.com/archives/community/原包 ##解压[root@prdb19u01]#tar-xvfmysql-8.4.0-linux-glibc2.28-x86_64.tar.xzmysql-8.4.0-linux-glibc2.28-x86_64/bin/mysql-8.4.0-linux-glibc2.28-x86_64/bin/myisam_ftdumpmysql-8.4.0-linux-glibc......
  • 《Head First Software Architecture》读书笔记 —— Chapter 1: software architectu
    软件架构(SoftwareArchitecture)是一个软件系统成功的基石,它不仅决定了系统的结构,也直接影响到其可扩展性、可维护性和性能表现。在这篇博客中,我们将探讨软件架构的关键维度(dimensions)、架构决策(architecturaldecisions)以及常见的架构风格(architecturalstyles),以帮助您更好......
  • docker部署mysql8主从
     一、拉取mysql镜像dockerpullmysql 二、创建容器#主库dockerrun-itd-p3306:3306-eMYSQL_ROOT_PASSWORD=123456--namemysql-mastermysql#从库dockerrun-itd-p3307:3306-eMYSQL_ROOT_PASSWORD=123456--namemysql-slavemysql 三、配置主库[m......
  • 3、【实战中提升自己】华为 华三中小型企业网络架构搭建 【MSTP、链路聚合、VRRP部署
     1 拓扑与说明         某公司的网络架构,这样的架构在目前的网络中是在常见的,假设您接收一个这样的网络,应该如何部署,该实战系列,就是一步一步讲解,如何规划、设计、部署这样一个环境,这里会针对不同的情况给出不同的讲解,比如拓扑中有2个ISP,假设客户需求是,想实现主备的......