【问题标题】:How to improve the write speed to sql database using python如何使用python提高对sql数据库的写入速度
【发布时间】:2019-09-15 01:53:33
【问题描述】:

我正在尝试找到一种更好的方法来使用 python 将数据推送到 sql db。我努力了 dataframe.to_sql() 方法和 cursor.fast_executemany() 但他们似乎并没有提高我现在正在使用的数据的速度(数据在 csv 文件中)。有人建议我可以使用 named tuplesgenerators 来比 pandas 更快地加载数据。

[通常 csv 文件大小至少为 1GB,推送一个文件大约需要 10-17 分钟]

我对 python 的许多概念都很陌生,所以请建议一些方法或至少参考任何显示任何信息的文章。提前致谢

【问题讨论】:

  • 当您说“sql 数据库”时,您是指 Microsoft SQL Server 吗?如果是这样,您使用的是微软的“ODBC Driver 17 for SQL Server”吗?
  • 是的,我的错我忘了提,它适用于使用 driver:"SQL Server Native Client 11.0" 的 SQL Server 17
  • 回复:“fast_executemany ... [不] 似乎提高了速度” - This pyodbc issue 可能感兴趣。

标签: python python-3.x pandas sqlalchemy pyodbc


【解决方案1】:

如果您尝试将 csv 按原样插入数据库(即不在 pandas 中进行任何处理),您可以在 python 中使用 sqlalchemy 来执行“BULK INSERT [params, file, etc.]”。或者,我发现读取 csv、处理、写入 csv,然后批量插入是一种选择。

否则,请随意指定更多您想要完成的内容,在插入数据库之前需要如何处理数据等。

【讨论】:

    猜你喜欢
    • 2011-10-20
    • 2012-07-18
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 2020-11-13
    相关资源
    最近更新 更多