• postgresql数据库清理


    大量update或者delete后 磁盘空间会猛增。原理是postgresql并没有真正的删除 只是将删除数据的状态置为已删除,该空间不能记录被从新使用。若是删除的记录位于表的末端,其所占用的空间将会被物理释放并归还操做系统。若是不是末端数据,该命令会将指定表或索引中被删除数据所占用空间从新置为可用状态,那么在从此有新数据插入时,将优先使用该空间,直到全部被重用的空间用完时,再考虑使用新增的磁盘页面。

    vacuum 不会锁表 会释放文件空间 不会释放磁盘空间 效率高 建议常用

    vacuum full 会锁表 会释放磁盘空间 效率低 建议大量delete和update后使用。

    1 查看用例下所有数据库从磁盘空间

    select datname, pg_size_pretty (pg_database_size(datname)) AS size from pg_database;

    2 查看指定数据库 每个表的磁盘空间 倒叙排列

    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

    ###

    vacuum 建议日常使用

    vacuum full 建议大量update、delete后使用。

    vacuum full 会清理整个数据库

  • 相关阅读:
    回车符和换行符
    UDP ECHO server
    启动LINUX下的TFTP服务器
    WPF版的Dock控件第二版完成
    最近写的一个WPF版的Dock控件
    搜狗开始耍流氓了
    对WebBrowser控件设置代理
    删除Jumplist中的历史记录
    C#中Undo/Redo的一个简易实现
    如何向枚举中添加新值
  • 原文地址:https://www.cnblogs.com/tiandi/p/16585681.html
Copyright © 2020-2023  润新知