MySQL存储引擎-数据文件

news2024/12/23 22:11:01

InnoDB数据文件存储结构

在这里插入图片描述

分为一个ibd数据文件–>Segment(段)–>Extent(区)–>Page(页)–>Row(行)

  • Tablesapce

表空间,用于存储多个ibd数据文件,用于存储表的记录和索引。一个文件包含多个段。

  • Segment

段,用于管理多个Extent,分为数据段(Leaf node segment)、索引段(Non-leaf node

segment)、回滚段(Rollback segment)。一个表至少会有两个segment,一个管理数

据,一个管理索引。每多创建一个索引,会多两个segment。

  • Extent

区,一个区固定包含64个连续的页,大小为1M。当表空间不足,需要分配新的页资源,不会

一页一页分,直接分配一个区。

  • Page

页,用于存储多个Row行记录,大小为16K。包含很多种页类型,比如数据页,undo页,系

统页,事务数据页,大的BLOB对象页。

  • Row

行,包含了记录的字段值,事务ID(Trx id)、滚动指针(Roll pointer)、字段指针(Field

pointers)等信息。

文件格式和行格式

文件格式决定了表的数据如何在磁盘上存储,MySQL 支持 AntelopeBarracuda 两种文件格式。

  • Antelope /ˈæntɪləʊp/: 先前未命名的,最原始的InnoDB文件格式,它支持两种行格式:COMPACT和

REDUNDANT,MySQL 5.6及其以前版本默认格式为Antelope。

  • Barracuda/ˌbærəˈkuːdə/: 新的文件格式。它支持InnoDB的所有行格式,包括新的行格式:COMPRESSED

和 DYNAMIC。

行格式决定了单个表的存储结构。常见的行格式包括 CompactRedundantDynamicCompressed

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

  • REDUNDANT 行格式

使用REDUNDANT行格式,表会将变长列值的前768字节存储在B树节点的索引记录中,其余

的存储在溢出页上。对于大于等于786字节的固定长度字段InnoDB会转换为变长字段,以便

能够在页外存储。

适用场景:为了兼容非常旧版本的 MySQL(很少使用)

  • COMPACT 行格式

与REDUNDANT行格式相比,COMPACT行格式减少了约20%的行存储空间,但代价是增加了

CPU使用量。如果系统负载是受缓存命中率和磁盘速度限制,那么COMPACT格式

可能更快。如果系统负载受到CPU速度的限制,那么COMPACT格式可能会慢一些。
适用场景:常见的表数据存储需求,适合小型字段的数据

  • DYNAMIC 行格式

使用DYNAMIC行格式,InnoDB会将表中长可变长度的列值完全存储在页外,而索引记录只

包含指向溢出页的20字节指针。大于或等于768字节的固定长度字段编码为可变长度字段。

DYNAMIC行格式支持大索引前缀,最多可以为3072字节,可通过innodb_large_prefifix参数

控制。
适用场景:表中包含大字段(TEXT 或 BLOB)的数据存储需求。

  • COMPRESSED 行格式

COMPRESSED行格式提供与DYNAMIC行格式相同的存储特性和功能,但增加了对表和索引

数据压缩的支持。
适用场景:需要最大化节省存储空间的场景,特别是存储只读数据的表。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

医药垃圾分类管理系统|Java|SSM|JSP|

【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html 5⃣️数据库可…

深度学习之目标检测篇——残差网络与FPN结合

特征金字塔多尺度融合特征金字塔的网络原理 这里是基于resnet网络与Fpn做的结合,主要把resnet中的特征层利用FPN的思想一起结合,实现resnet_fpn。增强目标检测backone的有效性。代码实现如下: import torch from torch import Tensor from c…

多协议视频监控汇聚/视频安防系统Liveweb搭建智慧园区视频管理平台

智慧园区作为现代化城市发展的重要组成部分,不仅承载着产业升级的使命,更是智慧城市建设的重要体现。随着产业园区竞争的逐渐白热化,将项目打造成完善的智慧园区是越来越多用户关注的内容。 然而我们往往在规划前期就开始面临众多难题&#…

【WPF】把DockPanel的内容生成图像

要在WPF中将一个 DockPanel 的内容生成为图像并保存,可以按照与之前类似的步骤进行,但这次我们将专注于 DockPanel 控件而不是整个窗口。 DockPanel的使用 WPF(Windows Presentation Foundation)中的 DockPanel 是一种布局控件&…

【电商推荐】平衡效率与效果:一种优化点击率预测的LLM融合方法

【电商推荐】平衡效率与效果:一种优化点击率预测的LLM融合方法 目录 文章目录 【电商推荐】平衡效率与效果:一种优化点击率预测的LLM融合方法目录文章摘要研究背景问题与挑战如何解决创新点算法模型多级知识蒸馏模块(MKDM)多级知识…

Y3编辑器教程6:触发器进阶案例

文章目录 一、地形制作1.1 地形制作流程1.2 关卡白盒1.3 场景美化1.4 优化场景 二、触发结构三、玩家指引(函数封装)3.1 项目拆解3.2 功能实现3.2.1 绘制UI界面3.2.2 UI的读取显示和刷新3.2.3 交互功能3.2.4 最终实现 四、NPC对话系统4.1 项目拆解4.2 UI…

2024年11月 蓝桥杯青少组 STEMA考试 Scratch真题

2024年11月 蓝桥杯青少组 STEMA考试 Scratch真题(选择题) 题目总数:5 总分数:50 选择题 第 1 题 单选题 Scratch运行以下程宇后,小兔子会( )。 A. 变小 B. 变大 C. 变色 D. …

ZED-OpenCV项目运行记录

项目地址:GitCode - 全球开发者的开源社区,开源代码托管平台 使用 ZED 立体相机与 OpenCV 进行图像处理和深度感知 • 使用 ZED 相机和 OpenCV 库捕获图像、深度图和点云。 • 提供保存并排图像、深度图和点云的功能。 • 允许在不同格式之间切换保存的深度图和点云…

Nacos 3.0 考虑升级到 Spring Boot 3 + JDK 17 了!

Nacos 由阿里开源,是 Spring Cloud Alibaba 中的一个重要组件,主要用于发现、配置和管理微服务。 由于 Spring Boot 2 的维护已于近期停止,Nacos 团队考虑升级到 Spring Boot 3 JDK 17,目前正在征求意见和建议。 这其实是一件好…

(css)鼠标移入或点击改变背景图片

(css)鼠标移入或点击改变背景图片 html <div class"mapTip"><divv-for"(item, index) of legendList":key"index"class"mapTipOne":class"{ active: change index }"click"legendHandle(item, index)"…

Grad-CAM-模型可视化分析方法

模型的可视化分析对于理解模型的行为有很好的辅助作用&#xff0c;能够让人们更容易理解神经网络的决策过程。 Grad-CAM&#xff08;Gradient-weighted Class Activation Mapping&#xff09;是一种用于解释卷积神经网络&#xff08;CNN&#xff09;决策过程的方法&#xff0c;…

常见八股文03

35.autowired、qualifier和Resource区别 Autowired&#xff1a;基于类型的注入 Qualifier&#xff1a;基于名称进行注入 Resource:按名称装配注入&#xff0c;如果找不到与名称匹配的bean&#xff0c;则按类型装配注入&#xff0c;可以用于字段和方法上 36.代理模式 动态代…

Pytorch | 利用NI-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击

Pytorch | 利用NI-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集NI-FGSM介绍背景算法流程 NI-FGSM代码实现NI-FGSM算法实现攻击效果 代码汇总nifgsm.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器&#xff1a; Pytorch | 从零构建AlexNet对CIFAR10进行…

redis开发与运维-redis02-redis数据类型与命令总结

文章目录 【README】【1】redis通用命令与数据结构【1.1】通用命令【1.2】数据结构与内部编码【1.3】redis单线程架构【1.3.1】redis单线程优缺点 【2】字符串&#xff08;值的类型为字符串&#xff09;【2.1】常用命令【2.1.1】设置值【2.1.2】获取值【2.1.3】批量设置值【2.1…

机器学习《西瓜书》学习笔记《待续》

如果说&#xff0c;计算机科学是研究关于“算法”的学问&#xff0c;那么机器学习就是研究关于“学习算法”的学问。 目录 绪论引言基本术语 扩展向量的张成-span使用Markdown语法编写数学公式希腊字母的LaTex语法插入一些数学的结构插入定界符插入一些可变大小的符号插入一些函…

电脑开机提示error loading operating system怎么修复?

前一天电脑还能正常运行&#xff0c;但今天启动时却显示“Error loading operating system”&#xff08;加载操作系统错误&#xff09;。我已经仔细检查了硬盘、接线、内存、CPU和电源&#xff0c;确认这些硬件都没有问题。硬盘在其他电脑上可以正常使用&#xff0c;说明不是硬…

git企业开发的相关理论(一)

目录 一.初识git 二.git的安装 三.初始化/创建本地仓库 四.配置用户设置/配置本地仓库 五.认识工作区、暂存区、版本库 六.添加文件__场景一 七.查看 .git 文件/添加到本地仓库后.git中发生的变化 1.执行git add后的变化 index文件&#xff08;暂存区&#xff09; lo…

Linux网络——网络基础

Linux网络——网络基础 文章目录 Linux网络——网络基础一、计算机网络的发展背景1、网络的定义&#xff08;1&#xff09; 独立模式&#xff08;2&#xff09;网络互联 2、局域网 LAN3、广域网 WAN4、比较局域网和广域网5、扩展 —— 域域网和互联网 二、协议1、协议的概念2、…

react中实现导出excel文件

react中实现导出excel文件 一、安装依赖二、实现导出功能三、自定义列标题四、设置列宽度五、样式优化1、安装扩展库2、设置样式3、扩展样式功能 在 React 项目中实现点击按钮后导出数据为 Excel 文件&#xff0c;可以使用 xlsx 和 file-saver 这两个库。 一、安装依赖 在项目…

7-Zip 加密功能使用教程:如何设置密码保护压缩文件

压缩包如何加密&#xff1f;7-Zip 是一款开源的文件归档工具&#xff0c;支持多种压缩格式&#xff0c;并提供了对压缩文件进行加密的功能。使用 7-Zip 可以轻松创建和解压 .7z、.zip 等格式的压缩文件&#xff0c;并且可以通过设置密码来保护压缩包中的数据不被未授权访问。 准…