gpt4 book ai didi

python - SQLAlchemy Core 批量插入速度慢

转载 作者:行者123 更新时间:2023-11-28 20:39:01 25 4
gpt4 key购买 nike

我正在尝试截断一个表并使用 SQLAlchemy 仅插入约 3000 行数据,而且速度非常慢(约 10 分钟)。

我遵循了有关此 doc 的建议并利用 sqlalchemy 核心来做我的插入,但它仍然运行得非常非常慢。我要查看哪些可能的罪魁祸首?数据库是一个 postgres RDS 实例。谢谢!

engine = sa.create_engine(db_string, **kwargs, pool_recycle=3600)
with engine.begin() as conn:
conn.execute("TRUNCATE my_table")
conn.execute(
MyTable.__table__.insert(),
data #where data is a list of dicts
)

最佳答案

当我看到这个没有答案时,我感到很沮丧……前几天我遇到了完全相同的问题:尝试使用 CORE 将大约数百万行批量插入到 Postgres RDS 实例。这需要 几个小时

作为一种解决方法,我最终编写了自己的批量插入脚本来生成原始 sql 本身:

bulk_insert_str = []
for entry in entry_list:
val_str = "('{}', '{}', ...)".format(entry["column1"], entry["column2"], ...)
bulk_insert_str.append(val_str)

engine.execute(
"""
INSERT INTO my_table (column1, column2 ...)
VALUES {}
""".format(",".join(bulk_insert_str))
)

虽然丑陋,但这给了我所需的性能(~500,000 行/分钟)

您找到基于 CORE 的解决方案了吗?如果没有,希望这对您有所帮助!

更新:最终将我的旧脚本移动到我们未使用的备用 EC2 实例中,这实际上解决了性能缓慢的问题。不确定您的设置是什么,但显然从外部(非 AWS)连接与 RDS 通信会产生网络开销。

关于python - SQLAlchemy Core 批量插入速度慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39455518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com