技术解读 MySQL InnoDB 大对象存储格式
摘要:本文介绍了 InnoDB 大对象的存储格式,包括 InnoDB 会将数据行中的字段按照大对象格式进行存储的场景,InnoDB 大对象溢出页存储常见存储格式,并详细介绍了 InnoDB 对大对象的常见组织管理方式。 本文分享自华为云社区《【华为云 MySQL 技术专栏】InnoDB 大对象存储格式解析》,作者: GaussDB 数据库。 1. 背景 在 MySQL 中,大字段是经常使用到的对象,例如:字符类型,包括日志、博客内容以及二进制类型的视频文件等。在 InnoDB 中,大字段也叫大对象(Large Object,简称 LOB),通常认为不会高频全量访问。InnoDB 的数据是按照聚簇索引进行组织的,当聚簇索引的数据行中存在大对象时,InnoDB 为了提升聚簇索引 B+ 树中数据行的访问效率,会对数据行中大对象的存储格式进行优化。 本文将基于 MySQL 8.0.38 的代码,介绍 InnoDB 的 DYNAMIC 行格式中 LOB 的存储格式。 2. 大对象的存储形式 在 InnoDB 中,大对象的存储形式主要有两种: 1) 内联存储在 InnoDB 聚簇索引的行记录中; ...