【发布时间】:2015-09-13 19:49:00
【问题描述】:
目前,我的开发数据库占用的磁盘空间比它应该的要多。该项目使用 Django、Docker-Machine 和 PostgreSQL。奇怪的是,当我使用pg_database_size()时,它说使用了大约9MB的磁盘空间(上传的文件只有20KB)。但是,当我总结所有表的大小时(即总结对查询 SELECT relname FROM pg_class WHERE relkind='r' AND relname !~ '^(pg_|sql_)'; 返回的每个表名执行 pg_total_relation_size() 的结果),报告的总大小仅为 1.8MB。我正在使用psycopg2 来查询我的数据库。
究竟为什么尺寸会有如此大的差异?我看到了一个类似的问题,答案似乎是清除任何未正确删除的 LOB。我做了以下事情:
docker exec -it <name_of_database_container> vacuumlo -U postgres -W -v postgres
它报告说它成功删除了 0 个 LOB,所以 LOB 似乎从来都不是我的问题。还有什么可能发生的?我是不是使用SELECT relname.... 查询正确获取所有表名?
【问题讨论】:
标签: django postgresql psycopg2