gpt4 book ai didi

postgresql - 内联或 "background table"中的 postgres 文本存储?

转载 作者:行者123 更新时间:2023-11-29 11:28:07 25 4
gpt4 key购买 nike

在 PostgreSQL 中,如何判断 text 列是内联存储还是存储在“后台表”中?

Documentation对于文本列类型表示

Very long values are also stored in background tables so that they do not interfere with rapid access to shorter column values.

是否有一个固定的长度来确定一个值“很长”?如果没有,还有其他方法可以告诉我的列在磁盘上的布局吗?我有一个包含多个列的表,这些列是 text(或 varchar(n)),我想了解它们是如何存储在后台的。是否有更多关于这些“背景表”的文档?

最佳答案

任何 varlena 数据类型(所有长度可变或长度超过 4 字节(32 位)或 8 字节(64 位)的类型)都可以被 TOAST - TOAST 是一个试图减少的过程长行(记录)到 8KB 页面大小。

在物理存储到关系之前检查行大小。当大小超过 2KB 时,大多数较大的字段被选择、压缩、切片为 2KB block 并移动到后缀为 _toast 的辅助表文件中。指向 toast 文件的指针将替换主存储中的数据。当行大于 2KB 时重复此过程。

关注links provided by a_horse_with_no_name and IMSoP获取更详细的文档。

关于postgresql - 内联或 "background table"中的 postgres 文本存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22767561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com