我正在使用的文件:
spark@cv-local:~$ ls -lh idUser.csv
-rw-r--r-- 1 postgres postgres 9.5M Apr 22 14:55 idUser.csv
我之前的数据库大小:
spark@cv-local:/var$ sudo du -h | grep main
5.8M ./lib/postgresql/9.1/main/base/57371
Psql:
test2=# create table client_id (iditem INT);
CREATE TABLE
test2=# copy client_id from '/home/spark/idUser.csv' DELIMITER ',' CSV;
COPY 1158836
我的数据库的大小:
spark@cv-local:/var$ sudo du -h | grep main
46M ./lib/postgresql/9.1/main/base/57371
有人可以解释为什么postgres的大小比正常文件大4倍吗?
我调查了那个因为我试图完全加入( CREATE TABLE testjoin AS SELECT * FROM client_id,item_id; )两个文件,其中一个是9.5M而另一个是5.8MI得到了一个错误磁盘空间。数据库大小通过屋顶:从70M到60G以上。
答案 0 :(得分:0)
创建连接表时,请记住指定where子句。否则,您的表将包含来自client_id和item_id的所有可能的条目组合!
答案 1 :(得分:0)
VACUUM FULL
,您的数据库应缩小。但是,只有当您有大量已删除的行时,此减少才会显着。请注意,通常不应VACUUM FULL
,因为此操作仅以表锁定表。相反,您应该使用简单的VACUUM或仅依靠自动真空。