sql - 我如何找出 Postgres 中的大 TEXT 字段有多大?

标签 sql xml postgresql compression zip

我在 Postgres 的 TEXT 字段中存储了一些大型 XML 文档,我试图找出 TOAST 压缩它们的效率。我有一个 2.2mb 的 XML 文档,可以压缩到 51kb,所以我想了解 TOAST 的压缩率与其相匹配的程度,以便最终决定我将如何随时间归档这些文档。

Postgres 中是否有一个函数可以让我像这样识别特定列和行的 TOAST 压缩大小?

最佳答案

您需要 pg_column_size 用于 TOASTed 大小,octet_length 用于未烘烤大小。 pg_column_sizesystem administration functions section of the documentation 中.请参阅文档和 this question更多细节。

例子:

craig=> CREATE TABLE toastdemo(x text);
CREATE TABLE
craig=> insert into toastdemo(x) select * from  repeat('abcdef',1000);
INSERT 0 1
craig=> select pg_column_size(x), pg_column_size(repeat('abcdef',1000)) FROM toastdemo;
 pg_column_size | pg_column_size 
----------------+----------------
             84 |           6004
(1 row)

关于sql - 我如何找出 Postgres 中的大 TEXT 字段有多大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15983152/

相关文章:

Android:尝试使用内置布局 xml 文件 - simple_list_item_2_single_choice 符号无法解析

java - Xerces - XmlString 到 Dom 对象

node.js - Node postgres插入语法错误

sql - 死锁:插入与从多个表中选择。快照隔离?

sql - 如何从 SELECT 中隐藏计算?

android - 在android中按下按钮时缩小动画

sql - 在 UPDATE 时返回更新的行属性

postgresql - pgAdmin 到 pgpool 的连接错误

c# - Linq Foreach GroupBy 在哪里

mysql - 是否不可能有一个检查约束引用一个也有外键的列?