微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Postgresql TOAST

Postgresql TOAST

TOAST (The Oversized-Attribute Storage Technique,)超大尺寸字段存储技术)主要用于存储大字段的值。
Postgresql 页面(page)大小是固定的(通常为8KB),且不允许tuples跨多个页面存储。因此不能存储非常大的字段值。为了克服这个限制,大字段值通常被压缩甚至切片成多个物理行存储到TOSAT表,这就是TOAST技术。TOAST对用户来说是透明的。
注:
Postgres的部分类型数据支持TOAST,这是因为有些字段类型是不会产生大字段数据的,完全没必要用到TOAST技术(比如int,float,date,time,boolean等)。
如果设置压缩标志位为1,表示该数据被压缩,使用前必须先解压。如果设置行外存储标志位为1,表示该数据行外存储,此时长度字后面的部分只是一个指针,指向存储实际数据的TOSAT表中的位置。
不论哪种情况,长度字里剩下的30bit的长度值表示数据的实际尺寸,而不是压缩后的尺寸。

TOAST数据

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐