TRANCATE& VACUUM FULL没有在服务器postgresql上释放空间

时间:2017-08-01 07:23:45

标签: postgresql vacuum

我在postgresql数据库中将数据导入30个表(每个表也有索引和约束)。经过一番检查后,我截断了所有表格并对所有表格进行了真空全分析。确实释放了一些空间,但我确信需要释放更多数据。在导入之前,我的Postgresql目录大约是20G。导入后它增长到270G。目前,数据目录的大小为215G。

我运行下一个选择:

SELECT
 relname as "Table",
  pg_size_pretty(pg_total_relation_size(relid)) As "Size",
  pg_size_pretty(pg_total_relation_size(relid) - pg_relation_size(relid)) as 
  "External Size"
  FROM pg_catalog.pg_statio_user_tables ORDER BY 
   pg_total_relation_size(relid) 
   DESC;

结果是最大的表是660M(现在只有4个表,它们的大小超过100M)。

                   Table             |    Size    | External Size
      -------------------------------+------------+---------------
       my_table_1                    | 660 MB     | 263 MB
       my_Table_2                    | 609 MB     | 277 MB
       my_table_3                    | 370 MB     | 134 MB
       my_table_4                    | 137 MB     | 37 MB
       my_table_5                    | 83 MB      | 31 MB
       my_table_6                    | 5056 kB    | 24 kB
       mariel_test_table             | 4912 kB    | 8192 bytes

  ..........

数据/基本目录大小为213G。

我还运行下一个选择:

SELECT nspname || '.' || relname AS "relation",
pg_size_pretty(pg_relation_size(C.oid)) AS "size"
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
ORDER BY pg_relation_size(C.oid) DESC
LIMIT 20;

输出:

             relation              |  size
-----------------------------------+--------
 my_table_1                        | 397 MB
 my_Table_2                        | 332 MB
 my_Table_3                        | 235 MB
 my_table_7                        | 178 MB
 my_table_4                        | 100 MB
 my_table_8                        | 99 MB

- 选择的输出不相同

临时文件大小:

   SELECT temp_files AS "Temporary files"
   , temp_bytes AS "Size of temporary files"
   FROM   pg_stat_database db;;
   Temporary files | Size of temporary files
   -----------------+-------------------------
           0 |                       0
           0 |                       0
           0 |                       0
         100 |             47929425920
           0 |                       0

我还尝试重启postgresql实例和linux服务器。 有什么想法吗?

0 个答案:

没有答案