python - 使用 python 中的虚拟文件改进 CSV 推送到 MySQL

标签 python mysql windows performance virtualfilesystem

我正在尝试找到一种方法来提高在Python中使用pandas将数据推送到MySQL数据库时的速度。

经过我的性能测试,我得出了与其他人相同的结论:将数据推送到 MySQL 数据库的最佳方法是使用 native 查询“LOAD DATA INFILE...”而不是 to_sql pandas 方法(甚至进行了诸如 this onethis one 之类的改进。

我的问题是,当我想推送数据时,它位于内存中。因此,为了使用 native MySQL 查询,我需要首先将其转储到磁盘上的文件中,然后使用“LOAD DATA...”查询。

所以我的问题是,有没有一种方法可以“模拟”写入磁盘上的文件,这样我就可以避免将大文件(200MB+)转储到上面?

转储大文件可能需要几分钟,所以我不想在那里浪费太多时间......

最佳答案

这种方法可能是一种可行的替代方案,无需接触磁盘(用于加载文件):

编写代码来创建多行 INSERT 语句并执行它们。一次建议 1000 行,并且 autocommit=ON。

关于python - 使用 python 中的虚拟文件改进 CSV 推送到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54238851/

相关文章:

python - pypi 包装和 secret : why does a github--intended . travis.yml 持有密码?

python - 如何使用2个循环,如果为假,则无限期地重复该程序

python - 如何让 Windows 资源管理器以 Python 字符串形式返回文件路径?

mysql - 为什么MySQL在没有ORDER BY的情况下使用filesort?

SQL 'LIKE' 语法

php - PHP的fsockopen、fread、fwrite、fclose有C++版本吗?

windows - 如何检测 COM 对象实现的所有接口(interface)?

python - 绘图 matplotlib django 顶部的空白

python - 在Python中查找最短的正则表达式匹配

MYSQL-将现有的 Varchar 列 GUID 值更新为二进制