一、MySQL的体系结构

连接层:

最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限。

服务层:

第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如过程、函数等。 

引擎层:

存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API和存储引擎进行通信。不同的存储引擎具有不同的功能,这样我们可以根据自己的需要,来选取合适的存储引擎。 

存储层:

主要是将数据存储在文件系统之上,并完成与存储引擎的交互。 

 二、存储引擎简介

存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。 

2.1在创建表时,指定存储引擎 

 2.2查看当前数据库支持的存储引擎

 三、存储引擎特点

  3.1 InnoDB 

        InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在MySQL5.5之后,InnoDB是默认的MySQL存储引擎。 

特点:

  • DML操作遵循ACID模型,支持事务;
  • 行级锁,提高并发访问性能;
  • 支持外键FOREIGNKEY约束,保证数据的完整性和正确性;

文件:

xxx.ibd:xxx代表的是表名,innoDB引擎的每张表都会对应这样一个表空间文件,存储该表的表结构(frm、sdi)、数据和索引。

参数: innodb_file_per_table

表空间 (Tablespace)

        这是 InnoDB 逻辑结构的最高层,是存储所有数据和索引的最高级别容器。

段 (Segment)

        表空间由一个或多个段组成。段是管理特定类型数据的逻辑存储单元。

区 (Extent)

        区是物理上连续的 64 个页(Page)组成的逻辑单元。因此,一个区的大小是 64 * 16KB = 1MB

页 (Page / Block)

        页是 InnoDB 磁盘和内存交互的最小单位。默认大小为 16KB(可通过 innodb_page_size 配置,但初始化后不可更改)。

行 (Row)

        行是存储引擎中最小的逻辑存储单元,代表表中的一条记录。

3.2 MyISAM

        MyISAM是MySQL早期的默认存储引擎。

特点:
不支持事务,不支持外键
支持表锁,不支持行锁
访问速度快

 文件:
XXX.sdi:存储表结构信息
XXX.MYD:存储数据
XXX.MYI:存储索引

3.3 Memory

        Memory引擎的表数据时存储在内存中的,由于受到硬件问题、或断电问题的影响,只能将这些表作为临时表或缓存使用。 

特点:
内存存放
hash索引(默认)

文件:
XXX.sdi:存储表结构信息

 3.4三种存储引擎对比

 四、存储引擎的选择

        在选择存储引擎时,应该根据应用系统的特点选择合适的存储引擎。对于复杂的应用系统,还可以根据实际情况选择多种存储引擎进行组合。


InnoDB:

是Mysql的默认存储引擎,支持事务、外键。如果应用对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包含很多的更新、删除操作,那么InnoDB存储引擎是比较合适的选择。


MyISAM:

如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性、并发性要求不是很高,那么选择这个存储引擎是非常合适的。


MEMORY:

将所有数据保存在内存中,访问速度快,通常用于临时表及缓存。MEMORY的缺陷就是对表的大小有限制,太大的表无法缓存在内存中,而且无法保障数据的安全性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/91900.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91900.shtml
英文地址,请注明出处:http://en.pswp.cn/web/91900.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

京东m端 滑块 分析 t30

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!部分python代码response requests.pos…

CentOS使用命令行工具为其配置静态网络并使用VMware软件ovf配置文件快速配置多台不同ip的centos文件

目录 一、实验前准备 1.SSH远程登录工具 二、CentOS配置静态IP并实现远程ssh登录 1.VMware软件查看NAT模式下默认网段和网关 2.使用ipconfig查看当前网卡名字和动态分配的ip地址 3.使用VIM编辑网络配置文件(此步骤可有其他编辑器替代,例如&#xf…

设计模式学习[17]---组合模式

文章目录前言1.引例2.一致性抽象处理3.透明组合模式与安全组合模式总结前言 在画类图的时候,类与类之间有组合关系,聚合关系,我本来以为这个组合模式应该是整体与部分的关系,其实设计模式中的组合模式和类图中的组合不是同一个东…

48Days-Day12 | 添加字符,数组变换,装箱问题

添加字符 添加字符_牛客笔试题_牛客网 算法原理 因为本题数据量都比较小,所以我们可以直接使用暴力解法,枚举B字符串的每一个位置作为与A字符串比较的起点,维护一个最小位数的值 代码 import java.util.*;// 注意类名必须为 Main, 不要有…

关于npm前端项目编译时栈溢出 Maximum call stack size exceeded的处理方案

背景:使用vueelementui的前端项目,使用jenkins进行自动化编译部署,某天在进行编译发版的时候,突然出现 npm ERR! Maximum call stack size exceeded 错误,一直都没法编译成功。原因:随着前端项目的不断迭代…

微信小程序组件发布为 npm 包的具体步骤

1. 准备工作 首先,您需要在系统上安装 Node.js 和 npm。如果尚未安装,请访问 Node.js — Run JavaScript Everywhere 下载并安装最新版本。 2. 创建独立的组件目录 为了更好地管理组件,建议将其从当前项目中独立出来: wechat-…

LCM中间件入门(2):LCM核心实现原理解析

文章目录一、good()函数:LCM实例状态检查的实现原理1. 实现逻辑2. 简化代码示例(C语言核心逻辑)二、publish():向指定channel发送消息的原理1. 完整流程拆解2. 简化代码示例(C核心逻辑)三、subscribe()&…

Nginx安装及配置

一.nginx安装1.1nginx概述1.1.1 nginx介绍Nginx是一款高性能的开源HTTP和反向代理服务器,是免费的、开源的、高性能的HTTP和反向代理服务器、邮件代理服务器、以及TCP/UDP代理服务器解决C10K问题(10K Connections)。同时也支持IMAP/POP3代理服…

SelectDB数据库,新一代实时数据仓库的全面解析与应用

摘要:SelectDB是一款基于Apache Doris的新一代实时数据仓库解决方案,具备实时极速、融合统一、弹性架构和开放生态四大核心特性。它采用云原生存算分离架构,支持秒级数据更新、毫秒级查询响应,在TPC-H等基准测试中性能超越传统系统…

自动驾驶的未来:多模态传感器钻机

伦敦大学学院博士生袁方正在建造多模态传感器钻机,以探索自动驾驶的未来。他的最新设置汇集了一套尖端传感器: 📡 60 GHz 雷达(用于 Raspberry Pi 的 DreamHAT)DreamRF 📷 RGB 深度摄像头 (Real…

13.Redis 的级联复制

Redis 的级联复制 即实现基于Slave节点的Slave 1. 修改 Slave 节点配置文件 # 第一个slave节点 [rootubuntu2204 ~]#vim /apps/redis/etc/redis.conf(大约在533行附近) replicaof 10.0.0.100 6379 masterauth 123456# 第二个slave节点 [rootubuntu2204 ~]#vim /apps/redis/etc/…

spring-ai-alibaba 学习(二十)——graph之检查点

前面学习了graph的基本概念,参数设置,特殊节点和边,今天学习一下检查点检查点可能名称比较抽象,换个名字可能比较容易理解,进度保存点或者存档点,可以类比游戏中保存当前游戏进度的存档进度主要用于人工介入…

sqli-labs:Less-19关卡详细解析

1. 思路🚀 本关的SQL语句为: $insert"INSERT INTO security.referers (referer, ip_address) VALUES ($uagent, $IP)";注入类型:字符串型(单引号包裹)、INSERT操作提示:参数需以闭合关键参数&a…

Java小红书源码1:1还原uniapp_仿小红书源码

在内容驱动型社交平台兴起的背景下,小红书作为图文/视频种草社区的代表,其产品结构与功能体验逐渐成为众多开发者与创业团队的模仿蓝本。本项目基于Java后端uni-app前端栈,完整复刻小红书主要功能,支持多端(小程序、H5…

USB Type-C PD协议一文通

原文:https://www.richtek.com/Design%20Support/Technical%20Document/AN056?sc_langzh-TW译者:TrustZone1、概述 USB Type-C标准的出现是为了满足不断增长的现代设备之间的连接需要,它在传统USB标准的基础上提供了更高的电源传输能力和资料…

AI文档比对和Word的“比较”功能有什么区别?

AI文档比对工具的核心区别在于,它超越了Word的纯文本“找不同”,能精准处理扫描件、表格及印章,并将文档审查从被动的文本核对,处理大文档也更为快速及准确。 为什么Word的“比较”功能已经不够用了? 对于许多专业人士…

AI驱动SEO关键词智能进化

内容概要 随着人工智能(AI)技术的快速演进,搜索引擎优化(SEO)领域正迎来前所未有的变革。本文核心探讨AI如何驱动SEO关键词的智能进化,重点解析人工智能革新关键词研究与优化策略的机制,包括智能…

基于SpringBoot+MyBatis+MySQL+VUE实现的青年公寓服务平台管理系统(附源码+数据库+毕业论文+部署教程+配套软件)

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,房屋信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广…

12.Redis 主从复制

Redis 主从复制Redis 主从复制1. Redis 主从复制架构2. 主从复制实现2.1 主从命令配置2.1.1 启用主从同步2.1.2 查看日志观察同步状态2.1.3 修改 Slave 节点配置文件2.1.4 删除主从同步3. 主从复制故障恢复3.1 Slave 节点故障和恢复3.2 Master 节点故障和恢复3.3 常见主从复制故…

微服务的编程测评系统8-题库管理-竞赛管理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言1. 添加题目1.1 service方法1.2 画页面-引入富文本和代码编辑框1.3 子组件中发送请求2. 获取题目详情3. 编辑题目4. 删除题目5. Vue生命周期函数5.1 创建阶段5.2…