-- https://doxygen.postgresql.org/btreefuncs_8c_source.html#l00625
CREATE TABLE s2 AS SELECT g::int AS g FROM generate_series(1, 10000) g;
ALTER TABLE s2 ADD PRIMARY KEY (g);
SELECT root,level FROM bt_metap ('s2_pkey');
SELECT * FROM bt_page_stats ('s2_pkey', 3) gx
SELECT itemoffset,itemlen,ctid
,pg_column_size(ctid) ctid_size,data
,pg_column_size(data) size_data
FROM bt_page_items ('s2_pkey', 3)
ORDER BY itemoffset LIMIT 10;返回
itemoffset | itemlen | ctid | ctid_size | data | size_data
------------+---------+--------+-----------+-------------------------+-----------
1 | 8 | (1,0) | 6 | | 1
2 | 16 | (2,1) | 6 | 6f 01 00 00 00 00 00 00 | 24
3 | 16 | (4,1) | 6 | dd 02 00 00 00 00 00 00 | 24
4 | 16 | (5,1) | 6 | 4b 04 00 00 00 00 00 00 | 24
5 | 16 | (6,1) | 6 | b9 05 00 00 00 00 00 00 | 24
6 | 16 | (7,1) | 6 | 27 07 00 00 00 00 00 00 | 24
7 | 16 | (8,1) | 6 | 95 08 00 00 00 00 00 00 | 24
8 | 16 | (9,1) | 6 | 03 0a 00 00 00 00 00 00 | 24
9 | 16 | (10,1) | 6 | 71 0b 00 00 00 00 00 00 | 24
10 | 16 | (11,1) | 6 | df 0c 00 00 00 00 00 00 | 24
(10 rows)我想知道16项是什么意思?
发布于 2023-05-23 04:33:21
itemlen只是索引条目的大小。ctid有8个字节的数据和6个字节,然后将其舍入到下一个8的倍数。所以大小是16个字节。
第一项是“高键”,它没有数据,因此大小为8。
https://dba.stackexchange.com/questions/327400
复制相似问题