---
title: "表存储 - OceanBase 数据库 V4.4.1 | OceanBase 文档中心"
description: 表存储 ​OceanBase 数据库中使用宏块来存储数据，每张表可能包含多个宏块，每个宏块占用 2M 空间。宏块内包含一个或者多个微块，每个微块内包含一行或者多行数据。 表的组织形式 OceanBase 数据库支持索引组织表（Index Organized Table）和堆组织表（Heap Organized Tab…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.4.1

# 表存储

更新时间：2025-11-12 14:33:17

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.4.1/zh-CN/700.reference/100.oceanbase-database-concepts/400.database-objects/200.database-objects-of-mysql-mode/200.table-of-mysql-mode/400.table-store-of-mysql-mode.md)  

​OceanBase 数据库中使用宏块来存储数据，每张表可能包含多个宏块，每个宏块占用 2M 空间。宏块内包含一个或者多个微块，每个微块内包含一行或者多行数据。

## 表的组织形式

OceanBase 数据库支持索引组织表（Index Organized Table）和堆组织表（Heap Organized Table）两种表的组织形式。

### 索引组织表

索引组织表中数据是按照主键存储和排序的，当往表中插入一行数据时，数据会按照其主键的顺序插入到表中。在这种结构下，数据和索引合二为一，主键为聚簇索引，主键不存在额外的空间开销，数据的访问也更加高效。

每行存储的列顺序是一样的。OceanBase 数据库通常是按照建表时的列顺序来存储，新加的列都放在最后一列存储。

### 堆组织表（堆表）

堆组织表中数据不会根据主键排序存储，当往表中插入一行数据时，数据的顺序是随机的。在这种结构下，主键索引实际为二级唯一索引，即非聚簇索引，数据和索引解耦，数据写入不需要考虑排序，使得数据的写入性能更佳。

堆组织表中的数据是无序的，尽管索引能够使键值保持有序，但数据本身并不具备任何特定的顺序。

## 行存储

行存储在微块中，一般情况下，行的所有列都是存储在一起的。当表中有大对象类型时，其所占用的存储空间会超过宏块大小，此时会将大对象类型溢出存储到其他的宏块中。

## 列存储

列存储是一种数据库存储方式，它将数据按照列的方式进行存储。在列存模式下，每个列的数据存储为一个独立的 SSTable，而所有列的 SSTable 会组合成一个虚拟的 SSTable，作为用户的列存基线数据。这种方式可以有效地提高查询性能和降低存储空间的消耗。

## 空值存储

OceanBase 数据库中会存储空值，在存储中会使用一个字节来标记某列是否为空。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
