我知道如何检查 Postgres 中索引和表的大小(我使用的是 9.4 版):
SELECT
relname AS objectname,
relkind AS objecttype,
reltuples AS "#entries", pg_size_pretty(relpages::bigint*8*1024) AS size
FROM pg_class
WHERE relpages >= 8
ORDER BY relpages DESC;
Run Code Online (Sandbox Code Playgroud)
但这并没有显示物化视图。如何查看它们占用了多少磁盘空间?
我刚刚在具有 32GB RAM 和 320GB 固态磁盘的服务器上安装了 Postgres 9.1。
我将使用这台服务器来为我的站点和我的数据库提供服务(即它不仅仅是一个数据库服务器)。数据库是 500m 行,大约 120GB 的数据。
加载数据后,需要针对 SELECT 查询优化数据库 - 数据本质上是相当静态的,并且每三个月仅更改一次。对数据库进行的 99% 的查询都是读取。
我想知道什么是好的 Postgres 设置开始。我已经设置:
effective_cache_size 8GB
shared_buffers 4GB
Run Code Online (Sandbox Code Playgroud)
在 Postgres 配置文件中,但我没有触及任何其他默认值。
使用上面的设置,我发现在我的表中的一个字段上创建索引非常慢(一个多小时并且仍在运行),我想创建其中的许多。
是否还有其他设置可以让我更快地创建索引?或者我可以安全地增加这些设置吗?