千家信息网

MySQL的物理存储结构和session生命周期

发表于:2024-10-18 作者:千家信息网编辑
千家信息网最后更新 2024年10月18日,MySQL的物理存储结构(1).数据的组织形式--索引(2).数据的row存储compact变长字段的存储:可变长度列在评估字段大小时还要考虑存储列实际长度的字节数。例如,VARCHAR(255)CH
千家信息网最后更新 2024年10月18日MySQL的物理存储结构和session生命周期
  1. MySQL的物理存储结构


(1).数据的组织形式--索引


(2).数据的row存储

compact

变长字段的存储:

可变长度列在评估字段大小时还要考虑存储列实际长度的字节数。例如,VARCHAR(255)CHARACTER SET UTF8列需要额外的两个字节来存储值长度信息,所以该列需要多达767个字节存储,其实最大可以存储65533字节,剩余两个字节存储长度信息。

行溢出的处理:

数据表Row_format是Compact, innodb默认的approach存储格式会把每个blob字段的前864个字节存储在page里,所以blob超过一定数量的话,单行大小就会超过8k ,所以就报错了。通过对比业务写成功和失败的SQL也应征了这个推论,那么现在要怎么解决这个问题?

  • 业务拆分表,大字段进行分表存储
  • 通过解决Row_format的存储方式解决问题

    由于业务单表的存储条数并不大,而且业务逻辑不适合拆分,所以我们要在Row_format上来解决这个问题。

如果blob列值长度 <= 768 bytes,不会发生行溢出(page overflow),内容都在数据页(B-tree Node);如果列值长度 > 768字节,那么前768字节依然在数据页,而剩余的则放在溢出页(off-page)


所以,此种格式的唯一值索引长度不能超过767


Barracuda

Barracuda文件格式下拥有两种新的行记录格式Compressed和Dynamic两种,新的两种格式对于存放BLOB的数据采用了完全的行溢出的方式,在数据页中只存放20个字节的指针,实际的数据都存放在BLOB Page中。Compressed行记录格式的另一个功能就是存储在其中的数据会以zlib的算法进行压缩。

dynamic行格式,列存储是否放到off-page页,主要取决于行大小,它会把行中最长的那一列放到off-page,直到数据页能存放下两行。TEXT/BLOB列 <=40 bytes 时总是存放于数据页。可以避免compact那样把太多的大列值放到 B-tree Node,因为dynamic格式认为,只要大列值有部分数据放在off-page,那把整个值放入都放入off-page更有效。

变长列

在InnoDB中,变长列( variable-length column )可能是以下几种情况

  1. 长度不固定 的数据类型,例如 VARCHARVARBINARYBLOBTEXT
  2. 对于 长度固定 的数据类型,如 CHAR ,如果 实际存储 占用的空间 大于768Byte ,InnoDB会将其视为变长列
  3. 变长编码 下的 CHAR


NULL值标识位

指示了该行数据列中是否有NULL值,这个字段的长度和表的列数有关,每一列对应一个bit位




2. session的执行过程


存储 数据 字节 长度 格式 字段 业务 大小 实际 问题 两个 信息 方式 类型 索引 剩余 物理 结构 最大 最长 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 重庆服务器回收推荐云服务器 顺义区品牌软件开发概况 顾某为软件开发商 数据库基础教程上海交通大学 微信添加好友恢复数据库 列族数据库是关系型数据库吗 网络安全白手套漫画公司cs 物流管理数据库怎么做 南充网络技术发展 .net获取数据库字段值 网络安全宣传画简笔画图片 江苏银行软件开发部地址 江苏微动网络技术有限公司电话 三星6g网络技术白皮书 数据库搜索服务器时间 全球 ip数据库 邢台共青团网络安全宣传观后感 科技速递互联网行业前景 我国实行什么网络安全制度 爬虫抓取数据库 安卓手机怎么样连接电脑服务器 福建虚拟服务器管理软件 服务器集群 价格 守望先锋的服务器 北京市服务器采购信息云空间 人口信息数据库放在什么地方 工行软件开发中心补充公积金 软件开发工资为什么那么高 常见计算机网络技术不二之选 远程关闭服务器安全狗
0