是否有任何命令可以在Postgres中找到所有数据库大小?
我可以使用以下命令找到特定数据库的大小:
select pg_database_size('databaseName');
Run Code Online (Sandbox Code Playgroud) 有什么区别pg_table_size()
,pg_relation_size()
&pg_total_relation_size()
?
我理解文档中解释的基本差异,但它对我的表实际使用了多少空间意味着什么?
我有一个PostgreSQL数据库,我使用物化视图.当我尝试刷新这些物化视图时会出现问题.
REFRESH MATERIALIZED VIEW product_cat_mview;
REFRESH MATERIALIZED VIEW productsforproject;
Run Code Online (Sandbox Code Playgroud)
我的解决方案是,当用户想要查看更新的数据时,他应该单击网页上的"刷新按钮",但这需要大约50秒(在本地连接上,距离应用程序服务器大约2分钟)并且所有这一次用户必须等待,这是不好的.
现在我应该创建一个解决方案,每10分钟自动刷新这些物化视图.我用多线程创建了一个Java解决方案.但我有一个问题.
第一个查询
REFRESH MATERIALIZED VIEW CONCURRENTLY product_cat_mview;
Run Code Online (Sandbox Code Playgroud)
工作正确,但第二
REFRESH MATERIALIZED VIEW CONCURRENTLY productsforproject;
Run Code Online (Sandbox Code Playgroud)
抱怨我需要创建一个独特的索引.我尝试在谷歌中找到创建索引,唯一索引等,但我仍然收到"创建唯一索引"的消息.
以下Postgres SQL查询将列出所有模式及其大小和索引大小的所有表.如果表只是一个索引表,它将显示为100%索引.
SELECT schema,
name,
pg_size_pretty(CASE WHEN is_index THEN 0 ELSE s END) AS size,
pg_size_pretty(CASE WHEN is_index THEN s ELSE st - s END) AS index,
CASE WHEN st = 0 THEN 0
WHEN is_index THEN 100
ELSE 100 - ((s*100) / st) END || '%' as ratio,
pg_size_pretty(st) as total
FROM (SELECT *,
st = s AS is_index
FROM (SELECT nspname as schema,
relname as name,
pg_relation_size(nspname || '.' || relname) as s,
pg_total_relation_size(nspname || '.' || relname) …
Run Code Online (Sandbox Code Playgroud)