pg数据库toast表
时间: 2023-11-21 21:18:39 浏览: 50
在 PostgreSQL 数据库中,TOAST 表是用来存储大型二进制数据对象(LOB)的表。LOB 数据可能包括图像、音频、视频、文档等等。
当一个表中的列包含大型二进制数据时,PostgreSQL 将这些数据存储在 TOAST 表中,并在原始表中保存一个引用。通过这种方式,可以减少原始表的大小,从而提高查询性能和存储效率。
TOAST 表通常位于与原始表相同的 schema 中,其命名方式是 "_toast" 后缀加上原始表的名称。例如,如果原始表名为 "mytable",则其对应的 TOAST 表名为 "mytable_toast"。
需要注意的是,TOAST 表的管理由 PostgreSQL 自动处理,不需要手动干预。如果需要查看 TOAST 表的信息,可以使用 pg_class 系统表。
相关问题
postgresql的toast表
PostgreSQL中的TOAST表是一种用于存储大型或变长数据对象(如大型文本、二进制数据或大型数组)的机制。TOAST是指“The Oversized-Attribute Storage Technique”的缩写,它允许将大型或变长数据对象分解成小块,然后存储在单独的数据页中。
当数据行中的某个属性的大小超过了TOAST阈值时,该属性的值将被自动分解并存储在TOAST表中。TOAST表是由系统自动创建和管理的,用户无需直接访问它们。TOAST表的存在使得PostgreSQL可以处理非常大的数据对象,而无需占用过多的存储空间或影响查询性能。
pg_class表结构
pg_class表包含以下列:
- relname:对象的名称。
- relnamespace:对象所在的命名空间。
- reltype:对象的类型,例如表、索引、序列、视图等。
- relowner:对象的所有者。
- relam:对象的存储方式(存储引擎)。
- relfilenode:对象所在的文件节点。
- reltablespace:对象所在的表空间。
- relpages:对象占用的磁盘页数。
- reltuples:对象包含的行数。
- reltoastrelid:对象的TOAST表(用于存储大字段)。
- reltoastidxid:对象的TOAST表的索引。
- relhasindex:对象是否有索引。
- relisshared:对象是否为共享对象。
- relpersistence:对象的持久性(permanent或temporary)。
- relkind:对象的种类,例如r表示表,i表示索引,S表示序列,等等。
注意:不同版本的PostgreSQL可能会有所差异,列的数量和名称可能会略有不同。