python - 使用 Python 加速(批量)插入 MySQL

标签 python mysql csv

我正在部署一个应用程序来使用一些 .csv 数据。我想将它们复制到 MySQL 表中。在 stackoverflow 用户的帮助下,我编写了以下代码:

import csv
import MySQLdb

db = MySQLdb.connect(   host = "dbname.description.host.com",
                        user = "user",
                        passwd = "key",
                        db = "dbname")
cursor = db.cursor()

query = 'INSERT INTO table_name(column,column_1,column_2,column_3)
VALUES(%s, %s, %s, %s)'                                                         

csv_data = csv.reader(file('file_name'))

for row in csv_data:
     cursor.execute(query,row)
     db.commit()

cursor.close()

问题是,目前,这个过程太慢了,我需要加快速度。

最佳答案

您可以使用executemany 来批处理作业,如下所示

import csv
import MySQLdb

db = MySQLdb.connect(   host = "dbname.description.host.com",
                        user = "user",
                        passwd = "key",
                        db = "dbname")
cursor = db.cursor()

query = 'INSERT INTO table_name(column,column_1,column_2,column_3)
VALUES(%s, %s, %s, %s)'                                                         

csv_data = csv.reader(file('file_name'))

my_data = []
for row in csv_data:
     my_data.append(tuple(row))

cursor.executemany(query, my_data)
cursor.close()

关于python - 使用 Python 加速(批量)插入 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46543436/

相关文章:

python - 接收 CSV 文件的脚本仅显示最后一行

java - 如何在 Jython 项目中创建基于 Sphinx 的文档?

python - SHA 256 不同的结果

php - 如果满足特定条件,是否可以自动删除表中的行?

mongodb - Mongoimport 中的分号分隔符

python - 重命名未命名的列 Pandas 数据框

Python - 将二维数组中的列设置为特定值的最佳方法

python - Python 中的随机生成器函数

php - 如何编写 MySQL 查询 where Date1 TO Date2?

php - Magento,帮助 SQL 查询获取完整的产品 URL