首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Postgres SQL优化删除范围

Postgres SQL优化删除范围
EN

Stack Overflow用户
提问于 2014-06-03 21:10:53
回答 1查看 417关注 0票数 0

我已经能够得到删除范围约3分钟至3-7秒。但是,我不确定我是否遵循了删除信息的理想路线。从我一直读到的最理想的删除方式是:

  1. 拆下所有外键限制。
  2. 删除数据。
  3. 再加上外键限制。

但是,这确实有点混乱,因为我们还想删除外键中的信息。因此,我提出了以下解决方案。

  1. 拆下所有外键限制。
  2. 获取正在被删除的所有id的列表。
  3. 列表中的Foreach id
    • 从ID匹配的table1中删除
    • 从ID匹配的table2中删除
    • 从ID匹配的table3中删除
    • 从ID匹配的table4中删除
    • 从ID匹配的table5中删除

  1. 再加上外键限制。

时间锁定似乎是在执行一个foreach循环并从每个表中删除。在postgres中,是否有一种使用并行性从表中删除的方法?还是应该尝试使用id组来删除,而不是使用单个id的组呢?

在delete语句运行之前,我还将在ID上创建索引和集群。

我愿意听取任何建议。

EN

回答 1

Stack Overflow用户

发布于 2014-06-03 22:04:27

看来我把查询弄得有点复杂了。我能够通过以下步骤来解决这个问题。

  1. 为每个列创建一个索引,我知道这些索引将在每个表中查询。
  2. 在运行查询之前,在索引上运行集群大大缩短了时间。

我是postgres新手,聚集索引类似,但与您习惯使用SQL Server的情况不同。有关更多信息,请参见集群文档。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24024984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档