【问题标题】:how to drop and create postgres index with Python如何使用 Python 删除和创建 postgres 索引
【发布时间】:2020-12-11 19:35:02
【问题描述】:

我正在编写一个 Python 应用程序,该应用程序涉及将数亿条记录批量加载到表中。我注意到自从最近在此表上创建索引以来,加载速度显着减慢。从我读到的here 看来,常见的做法似乎是删除索引、加载数据并重新创建索引。但是,该作业被安排为日常作业。为了自动化这个过程,我需要在同一个应用程序中使用 Python 删除和创建索引。不过,似乎无法找到如何使用 Python 和 psycopg2 来做到这一点。那篇文章也没有任何代码。有人知道怎么做吗?

【问题讨论】:

  • 如果您要添加行而不是替换它们,您应该考虑分区。删除 100 亿行的索引只是为了稍后将其重新创建为 102 亿行的索引可能不是一个可用的解决方案。

标签: python postgresql indexing psycopg2


【解决方案1】:

您不能像处理用于加载数据的插入查询一样执行删除和创建索引的 sql 吗?

cursor.execute("DROP INDEX <name>")
...
load data here
...
cursor.execute("CREATE INDEX ...")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    • 2016-05-10
    • 2011-03-22
    • 2020-12-28
    • 1970-01-01
    相关资源
    最近更新 更多