小编Mar*_*ark的帖子

插入多行时 commit() 的最佳实践

[Situation-Aim]
我们有一个 CSV 格式的数据集,有 100 万行。这些需要导入到mysql 5.6数据库中,带有innodb引擎的表,带有以下列(匹配csv文件):
Column1: bigint(15)
Column2: datetime

要导入这些数据,我们可以使用以下 python 脚本:

#python version: 3.4.3
#mysql connector version: 2.0.4
#Note: this is just a simple example script!

import mysql.connector
import csv

#Set-up db connection
cnx = mysql.connector.connect(user='user', password='secret', database='mydatabase')
cursor = cnx.cursor()

#read/ open csv
reader = csv.reader(open("C:/test.csv", "rt"))

#ignore header
next(reader)

#read CSV and send to mysql
for row in reader:
    id=row[0]
    adate = row[1]
    cursor.execute("""INSERT INTO mytable VALUES ('%s','%s')""" % (id,adate))

#commit the query
cnx.commit()
Run Code Online (Sandbox Code Playgroud)


[问题] …

mysql transactions database-performance python-3.x

5
推荐指数
1
解决办法
2549
查看次数