有没有办法选择 Postgres 数据库的页面大小?
我知道页面大小通常是 8K。我还从 2003 年开始阅读此电子邮件主题。我不知道这pg_controldata
会起作用,因为我无权访问托管数据库的文件系统。
Erw*_*ter 11
如果您无法访问pg_controldata
...
有一个简单的方法:
test=# SELECT current_setting('block_size');
current_setting
-----------------
8192
Run Code Online (Sandbox Code Playgroud)
以下“参数”是只读的,在编译或安装 PostgreSQL 时确定。[...]
block_size
(integer
)报告磁盘块的大小。它是由
BLCKSZ
构建服务器时的值决定的。默认值为 8192 字节。某些配置变量(例如shared_buffers)的含义受block_size
. 有关信息,请参阅第 19.4 节。
创建一个只有 1 个小行的虚拟表:分配了一个数据页。然后检查“主要”关系叉的大小pg_relation_size()
test=# CREATE TEMP TABLE foo AS SELECT 1 AS id;
SELECT 1
test=# SELECT pg_size_pretty(pg_relation_size('pg_temp.foo'));
pg_size_pretty
----------------
8192 bytes
(1 row)
Run Code Online (Sandbox Code Playgroud)
所以页面大小是 8 kB,这并不奇怪,就像你提到的那样。手册:
每个表和索引都存储为一个固定大小的页面数组(通常为 8 kB,尽管在编译服务器时可以选择不同的页面大小)。
归档时间: |
|
查看次数: |
4298 次 |
最近记录: |