Postgres 数据清理过程

本贴最后更新于 369 天前,其中的信息可能已经物是人非

查看数据量大的表

 SELECT table_schema || '.' || table_name AS table_full_name, pg_size_pretty(pg_total_relation_size('"' 
    || table_schema || '"."' || table_name || '"')) AS size
FROM information_schema.tables 
ORDER BY
pg_total_relation_size('"' || table_schema || '"."' || table_name || '"') DESC limit 100

image.png

查看数据量大的字段

select
 sum(pg_column_size(path_analyze_result)) as path,
 sum(pg_column_size(object_analyze_result)) as object,
 sum(pg_column_size(correlation_analyze_result)) as correlation
from nap_policy_service_request;

   path   |  object   | correlation
----------+-----------+-------------
 32640372 | 252413523 | 48469497241
(1 row)

数据处理

如果是一些不重要的数据,可以直接删除

delete from table_name

然后需要清除索引和 TOAST 数据

VACUUM FULL table_name;

nap=> \dt+ table_name
                              List of relations
 Schema |            Name            | Type  | Owner |  Size   | Description
--------+----------------------------+-------+-------+---------+-------------
 public | table_name | table | nap   | 3047 MB |
(1 row)

如果不能删除,可以进行数据迁移,分库分表等处理

  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    330 引用 • 614 回帖
  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    22 引用 • 22 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • renduy

    这个是不是需要权限?ERROR: permission denied for schema dbe_perf