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 次 |
| 最近记录: |