我有一个 100 GB 大小的 postgresql 数据库。其中一张表有大约十亿个条目。为了快速输入数据,一些数据被重复并留待以后修剪。其中一列可用于将行标识为唯一的。
我发现了这个stackoverflow问题,它为mysql提出了一个解决方案:
ALTER IGNORE TABLE table_name ADD UNIQUE (location_id, datetime)
postgresql有类似的东西吗?
我尝试使用 group by 和 row number 删除,在这两种情况下,我的计算机在几个小时后都会耗尽内存。
这是我尝试估计表中的行数时得到的结果:
SELECT reltuples FROM pg_class WHERE relname = 'orders';
reltuples
-------------
4.38543e+08
(1 row)