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

mysql之数据存储单元

简介

在MySQL中,单行数据存储单元的大小并不是固定的,它取决于多种因素,如表结构中使用的数据类型以及所使用的存储引擎。

但是我们可以提供一些关于MySQL中典型行数据存储单元大小的一般性指引:

存储引擎

InnoDB(默认存储引擎)

InnoDB中单行数据存储单元的大小通常在8-16 KB之间,具体取决于数据类型和行格式(COMPACT、REDUNDANT、DYNAMIC或COMPRESSED)。

MyISAM

MyISAM中单行数据存储单元的大小通常小于InnoDB,因为它不需要管理事务和并发控制的开销。具体大小会根据数据类型而有所不同。

数据类型

  • 较小的数据类型,如INT、SMALLINT、TINYINT、CHAR和VARCHAR(n)(其中n较小),每行占用的存储空间通常较少。
  • 较大的数据类型,如LONGTEXT、MEDIUMBLOB和VARCHAR(n)(其中n较大),可能会显著增加行数据存储单元的大小。

行格式

行格式也会影响行数据存储单元的大小。例如,InnoDB中的DYNAMIC行格式可以比COMPACT或REDUNDANT格式更高效地存储变长列。

要更准确地了解您特定MySQL设置中的行数据存储单元大小,可以使用以下SQL查询来检查指定表的平均行长度:


SELECT AVG_ROW_LENGTH
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = '您的数据库名称'
AND TABLE_NAME = '您的表名称';

这将提供指定表的平均行数据存储单元大小的估计值。请记住,实际大小可能会因存储的具体数据而有所不同。

定长型vs变长型数据类型

定长数据类型,如CHAR(n),每行大小是可预测的,而变长数据类型,如VARCHAR(n),大小会根据实际存储的数据而有所不同。

定长字段(Fixed-length Fields)

定长字段指的是在建表时就固定了长度的字段,通常使用以下数据类型:

  • CHAR(n): 存储长度为n个字符的字符串,不足n个字符时会用空格填充。
  • INT: 存储4个字节的整数。
  • FLOAT: 存储4个字节的浮点数。
  • DATE: 存储日期,长度为3个字节。

定长字段的特点

  • 长度固定,不会根据实际数据长度而改变。
  • 查询和访问速度快,因为可以直接计算出数据在磁盘上的确切位置。
  • 存储空间利用率较低,因为即使存储的数据长度小于定义的长度,也会占用完整的存储空间。

不定长字段(Variable-length Fields)

  • 不定长字段指的是在建表时可以指定最大长度,但实际存储的长度会根据数据的长度而变化的字段,通常使用以下数据类型:
  • VARCHAR(n): 存储长度可变的字符串,最大长度为n个字符。
  • TEXT: 存储可变长度的文本数据,最大长度为65,535个字符。
  • BLOB: 存储可变长度的二进制数据,最大长度为65,535个字节。

不定长字段的特点

  • 长度可变,根据实际数据长度而改变。
  • 存储空间利用率较高,因为只占用实际数据所需的存储空间。
  • 查询和访问速度相对较慢,因为需要先计算出数据在磁盘上的位置。
  • 使用定长字段和不定长字段的主要区别在于:

存储空间利用率

  • 定长字段会浪费一部分存储空间,但查询速度快。
  • 不定长字段能更高效地利用存储空间,但查询速度相对较慢。

适用场景

  • 定长字段适用于存储固定长度的数据,如身份证号、手机号等。
  • 不定长字段适用于存储长度不确定的数据,如文章标题、用户评论等。
http://www.lryc.cn/news/384571.html

相关文章:

  • 未来20年人工智能将如何塑造社会
  • Maven的依赖传递、依赖管理、依赖作用域
  • ArcGIS定义1.5度带坐标系与投影转换
  • 艺术与科技的精湛融合:探讨AI绘画与AI动画的交汇点
  • 【移动应用开发期末复习】第五/六章
  • excel FORMULA
  • 【学习】开发板接口
  • 主干网络篇 | YOLOv5/v7 更换骨干网络之 EfficientNet | 卷积神经网络模型缩放的再思考
  • 如何测试Java应用的性能?
  • css 动画
  • # 设置 Linux 安全策略允许本地 IP 开通了访问权限
  • C++初学者指南第一步---14.函数调用机制
  • Apache Flink类型及序列化研读生产应用|得物技术
  • 如何使用代理 IP 防止多个 Facebook 帐户关联 - 最佳实践
  • DDei在线设计器-API-DDeiAbstractShape
  • IPython的使用技巧整理
  • vue项目纯前端实现导出pdf文件
  • 以Bert训练为例,测试torch不同的运行方式,并用torch.profile+HolisticTraceAnalysis分析性能瓶颈
  • 地球地图:快速进行先进土地监测和气候评估的新工具Earth Map
  • 6.22套题
  • openEuler搭建hadoop Standalone 模式
  • nginx更新https/ssl证书的步骤
  • 【Android面试八股文】说一说Handler的sendMessage和postDelay的区别?
  • Java学习 - Redis主从复制
  • 图的拓扑排序
  • windows USB 设备驱动开发-总章
  • springboot解析自定义yml文件
  • 【C/C++】静态函数调用类中成员函数方法 -- 最快捷之一
  • 佣金的定义和类型
  • python数据分析实训任务二(‘风力风向’)