Hir*_*tel 4 postgresql postgresql-performance
我正在使用PostgreSQL数据库进行实时项目。其中,我有一张有 8 列的表。该表包含数百万行,因此为了从表中更快地进行搜索,我想删除该表中的旧条目并将其存储到另一个新表中。
为此,我知道一种方法:
但是时间太长,效率不高。
所以我想知道在 postgresql 数据库中执行此操作的最佳方法是什么?
Postgresql 版本:9.4.2.
大约行数:8000000
我想移动行:2000000
您可以使用 CTE(公用表表达式)在单个 SQL 语句中移动行(更多信息在文档中):
with delta as (
delete from one_table where ...
returning *
)
insert into another_table
select * from delta;
Run Code Online (Sandbox Code Playgroud)
但仔细想想你是否真的需要它。就像 a_horse_with_no_name 在评论中所说的那样,调整您的查询可能就足够了。
归档时间: |
|
查看次数: |
2682 次 |
最近记录: |