由于postgres储存数据太多,硬盘空间快要满了,我将数据库中的历史记录全部删除掉了,但查看硬盘空间还是满的,请问各位高手,是不是delete数据后还要执行什么命令?我知道像oracle操作完后要执行个commit确认,postgres是不是也需要执行个什么命令确认?还是要执行vacuum清理命令?谢谢各位高手.

解决方案 »

  1.   

    你要执行vacumm -f 才能释放空间,还给操作系统
      

  2.   

    谢楼上的回复,我想向一下,我之前执行过一次vacuumm;但执行一次需要好长时间,一个多小时才能完成,我如果单独执行vacuum是不是清理整个数据库?我如果想单独清理数据库中的某一张表如何操作?谢谢.
      

  3.   

    vacuum -t 表名是清理某一张表,我在网上搜索看到说vacuum是将每一张表回滚储存的数据删除清理表空间,请问,我一般执行完delete后,我还需要执行什么命令确认吗?如果orcal是执行commit确认. postgres如果delete执行错了的话,也可以执行rollback命令进行回滚吗?谢谢各位了.
      

  4.   

    描述 
    VACUUM 在 Postgres 里有两个用途,一个是重新整理存储区,另一个是为优化器收集信息.  
    VACUUM 打开数据库中每个表,将回卷的事务的记录清除,并且更新系统目录里的统计信息.(数据库)维护的统计信息包括记录条数和所有表使用的存储页面数.  按照网上的资料所讲,执行vacuum后就不能回滚了,请问postgres回滚的命令是不是rollback? 那操作完成后确认的命令是什么?
      

  5.   

    truncate 表名 就能起到清空表的作用。