当前位置: 首页 > news >正文

MySQL InnoDB支持几种行格式

数据库表的行格式决定了一行数据是如何进行物理存储的,进而影响查询和DML操作的性能。

在InnoDB中,常见的行格式有4种:

  1、COMPACT:是MySQL 5.0之前的默认格式,除了保存字段值外,还会利用空值列表保存null值,还会记录长字段长度列表的记录头信息。

  COMPACT适合处理大量包含可变长度列(如:VARCHAR、VARCHARY、BLOB和TEXT类型)的数据。

  对于可变长度列,前768字节的数据存储在B树节点的索引记录中,超出部分索引在溢出页中。大于或等于768字节的固定长度列会被编码为可变长度列,并可以存储在页外。

  2、REDUNDANT:Redundant是MySQL 5.0版本之前的行记录存储方式,用的比较少,Redundant行格式会把该记录中所有列(包括隐藏列)的长度信息都存储到“字段长度偏移列表“中。

  3、DYNAMIC:DYNAMIC格式在MySQL 5.7版本引入,是COMPACT格式的改进版。他保持了COMPACT格式的优点,同时在存储大的可变长度列时更加灵活,能够动态地选择存储在页内或页外。DYNAMIC格式适用于大部份的应用场景,并在存储空间和性能上做了一定的平衡,其结果和COMPACT大致相同。

  4、COMPRESSED:是MySQL 5.1中InnoDB的新特性之一,它可以在存储数据时对数据进行压缩,从而减少磁盘占用空间。它的缺点是增加了CPU的使用,可能会降低一些查询的性能。COMPRERSSED行格式是在DYNAMIC行格式的基础上添加了页外压缩功能。在存储时,如果发现数据可以通过压缩减小存储空间,就会使用压缩方式来存储数据,在查询时,会自动解压缩数据并返回结果。

行格式紧凑的存储特性增强的可变长度列存储大索引健前缀支持压缩支持支持的表空间类型所需文件格式
REDUNDANTsystem,file-per-table,generalAntelope or Barracuda
COMPACTsystem,file-per-table,generalAntelope or Barracuda
DYNAMICsystem,file-per-table,generalBarracuda
COMPRESSEDfile-per-table,generalBarracuda

参考:Hollis

http://www.lryc.cn/news/386724.html

相关文章:

  • Day6: 344.反转字符串 541. 反转字符串II 卡码网:54.替换数字
  • kubekey 离线安装高可用 kubernetes 集群
  • 大数据面试题之Hive(2)
  • 求推荐几款http可视化调试工具?
  • Python逻辑控制语句 之 判断语句--if else结构
  • word2016中新建页面显示出来的页面没有页眉页脚,只显示正文部分。解决办法
  • 8.javaSE基础进阶_泛型generics(无解通配符?+上下界统配符superextends)
  • 酒店客房管理系统(Java+MySQL)
  • S32K3 --- Wdg(内狗) Mcal配置
  • LeetCode 算法:二叉树的层序遍历 c++
  • 博途TIA Portal「集成自动化软件」下载安装,TIA Portal 灵活多变的编程环境
  • 火了10年的电脑监控软件有哪些?盘点8款热门的电脑监控软件
  • 入门Java爬虫:认识其基本概念和应用方法
  • Flask新手入门(一)
  • Grafana-11.0.0 在线部署教程
  • pytorch-01
  • 梦想CAD二次开发
  • Eureka的介绍与使用
  • ChatGPT之母:AI自动化将取代人类,创意性工作或将消失
  • 【深度学习驱动流体力学】湍流仿真到深度学习湍流预测
  • 如何从0构建一款类似pytest的工具
  • 6.27-6.29 旧c语言
  • Unidbg调用-补环境V3-Hook
  • 从AICore到TensorCore:华为910B与NVIDIA A100全面分析
  • Edge 浏览器退出后,后台占用问题
  • 实验八 T_SQL编程
  • 【爆肝34万字】从零开始学Python第2天: 判断语句【入门到放弃】
  • React 19 新特性集合
  • 耐高温水位传感器有哪些
  • Symfony国际化与本地化:打造多语言应用的秘诀