Postgresql 表删除需要很长时间

Postgresql 表删除需要很长时间

我对 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您想要删除的表。

相关内容