问题是罐子上写着什么。我目前有一个正在使用当前工作流程的项目:


将所有数据从工作区拉入python
在每一列中搜索关键字词列表
返回点击
下一个数据库并重复


通过在关键术语搜索(第2步和第3步)上运行current.futures,我已经能够将额外的效率压缩到循环中,这使我可以同时运行所有内核。现在,我想看看是否可以通过加快数据库调用的速度来提高效率(步骤1)

这是我当前的代码

import psycopg2


conn = pg.connect(
         host=host,
         database=database,
         username=username,
         password=password
         )

SQLselect=  '''
            select *
            from {}
            '''
for databese in databases:
    cur=conn.cursor('database')
    call=cur.execute(SQLselect.format(database))
    rows=cur.fetchall
    cols=[desc[0] for desc in cur.description]
    temp = pd.DataFrame(rows, columns=cols


除此方法外,我还尝试使用psycopg2的copy_to方法。我认为这样做会更快,因为copy_from方法效果很好。但是,这实际上比我上面的代码要慢。有什么办法可以加快速度或更有效地执行此操作吗?

最佳答案

如果目标是尽快在所有这些DB上执行SQL,并且它们与顺序无关,那么您可以并行/并行运行它们。

我将在链接here中查看一些潜在的解决方案。

关于python - 使用psycopg2将数据从Postgresql提取到python的最快/最有效方法是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59741267/

10-13 07:31
查看更多