sha*_*dov 5 postgresql delete postgresql-9.2
我需要根据索引日期字段从 13 亿行表中删除大约 4 亿行。
该表的大小约为 800 GB。
在不造成不利影响的情况下删除数据的最有效方法是什么?该表正在大量使用,这意味着大量插入和更新(不会影响要删除的行)。
有一个维护窗口,这将是最快的,但我可能无法获得足够大的维护窗口。另一方面,我可以花时间进行删除,因此不会着急。
想出了一个更好的方法来做到这一点
Insert into new_tbl select * from old_tbl where start_date < now -INTERVAL '2 years'
在停机窗口期间:
insert into new_tbl select * from old_tbl where id not in (select id from new_tbl ) and id not in ( select id from old_tbl)
Run Code Online (Sandbox Code Playgroud)重命名old_tbl
为old_tbl_drop
和new_tbl
到old_tbl
.
old_tbl_drop
。 归档时间: |
|
查看次数: |
3818 次 |
最近记录: |