首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Turbodbc在批量插入上非常慢

Turbodbc在批量插入上非常慢
EN

Stack Overflow用户
提问于 2020-01-24 18:46:41
回答 1查看 562关注 0票数 0

当涉及到大量DB插入时,我正在研究Turbodbc是否能够为我们解决问题。我们谈的是数以百万计的批量插入。目前,它比我尝试过的任何其他解决方案都慢得多,例如mongodb插入和熊猫的to_sql函数。我不确定我是不是错过了一个设置或某些特定的东西。有没有人有过Turbodbc的经验,也许也经历过同样的问题?

  • --我在mac上尝试过,也尝试过篡改debian(buster)环境。

https://dev.mysql.com/get/Downloads/Connector-ODBC/8.0/mysql-connector-odbc-8.0.19-linux-debian10-x86-64bit.tar.gz

代码的要点如下

代码语言:javascript
复制
import turbodbc

connection = turbodbc.connect('astcdr', turbodb_options=options)
cursor = connection.cursor()
cursor.fast_executemany = True

// *** Measuring duration of operation
// Loading a big CSV
// *** Measuring duration of operation
// Mutate some data
// *** Measuring duration of operation
// Build the sql
// *** Measuring duration of operation
....

// Execute
cursor.executemany(sql, dataArray) <- this operation takes long
// *** Measuring duration of operation 

我的odbc.ini文件如下所示

代码语言:javascript
复制
[astcdr]
Description=MySQL connection to database
Driver=MySQL
Database=test
Server=mysql_container
User=test
Password=test
Port=3306

我的odbcinst.ini看起来如下

代码语言:javascript
复制
[ODBC Drivers]
MySQL ODBC 8.0=Installed

[MySQL]
Driver=/var/www/mysql-connector-odbc-8.0.19-linux-debian10-x86-64bit/lib/libmyodbc8w.so
UsageCount=2

我安装了下面的文件,其中pybind11在码头构建过程中失败了,但是当我挂载容器时就安装了它。

代码语言:javascript
复制
pybind11
pandas
numpy
pyarrow
pytest
pytest-cov
mock
six
turbodbc

由于结果在我的mac上是一样的,而且在一个被篡改的env中,我要么在设置它时犯了同样的错误,要么Turbodbc没有按照我认为的那样工作。有人有什么建议吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-01-27 21:30:17

有两件事你应该知道:

  1. 您应该尝试另一个parameter_sets_to_buffer设置,如https://turbodbc.readthedocs.io/en/latest/pages/advanced_usage.html中所描述的。增加这一点可能会增加throughput.
  2. Don't,比较不同数据库之间的性能。MongoDB和MySQL具有不同的特性/性能特性,因此插入性能也有很大的差异。因此,将turbodbc+MySQL与其进行比较是不好的。我不知道MySQL OBDC驱动程序的性能,但是由于有一个本机mysql连接器,这可能比turbodbc驱动程序要好,后者有时会非常慢,因此turbodbc不会对您有所帮助。turbodbc将给您带来与pyodbc相比的加速功能,但要求ODBC驱动程序本身已经是高效的。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59902075

复制
相关文章

相似问题

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