我正在尝试编写一个python脚本,该脚本解析文件并使用从解析文件中获取的新值更新数据库。我的代码如下所示:
startTime = datetime.now()
db = <Get DB Handle>
counter = 0
with open('CSV_FILE.csv') as csv_file:
data = csv_file.read().splitlines()
for line in data:
data1 = line.split(',')
execute_string = "update table1 set col1=" + data1[1] +
" where col0 is '" + data1[0] + "'"
db.execute(execute_string)
counter = counter+1
if(counter % 1000 == 0 and counter != 0):
print ".",
print ""
print datetime.now() - startTime
但该操作大约需要10分钟才能完成。我可以通过任何方式调整我的SQL查询以加快它的速度吗?
答案 0 :(得分:0)
以批量大小读取行(可能大小为1000)并尝试使用mysql的bulk_update查询。我认为这个过程会比当前过程更快,因为较少的查询会更新更多数据。
答案 1 :(得分:0)
我同意你需要批处理。看看这个问题和最佳答案How can I do a batch insert into an Oracle database using Python?