![Postgresql 表删除需要很长时间](https://linux22.com/image/558726/Postgresql%20%E8%A1%A8%E5%88%A0%E9%99%A4%E9%9C%80%E8%A6%81%E5%BE%88%E9%95%BF%E6%97%B6%E9%97%B4.png)
我对 Postgresql 和服务器管理还不太熟悉,所以我不太确定这是否是正常行为。现在我正尝试使用级联选项删除一个表。
我使用的命令是
DROP TABLE library_genre CASCADE;
大约半个小时过去了,它仍然在说
NOTICE: drop cascades to constraint radio_logs_entry_genre_id_fkey on table logs_entry
我不太清楚如何检查数据库有多大,但我无法想象数据库会太大。你认为是否存在某种损坏导致它花费这么长时间吗?
任何能解决此问题的建议都将不胜感激。我应该使用哪种命令来弄清楚发生了什么?
编辑:新信息
我在尝试删除表之前在 pg_dump 上运行了这个
du -k pg_dump_file
它返回 27712。但我不确定它返回的数据大小是多少。如果是千字节,则只有 27 兆字节,而且修改起来似乎不需要那么长时间。
编辑 #2。我运行了 top,看起来 postgres 并没有真正使用太多的 CPU 或内存。
答案1
删除表是通过约束级联进行的 - Postgres 最有可能检查引用表中的行以确定需要对它们做什么。
为了加快速度,您可以先删除约束,和/或TRUNCATE
您想要删除的表。