我正在更新一个 sqlite 数据库,使其具有一个bin
填充数字 0 到 100 的新列。我编写了一个简单的脚本来说明我遇到的一些性能问题:
import sqlite3
conn = sqlite3.connect('partition_dev.db')
db_parts = conn.cursor()
i = 0
for row in db_parts.execute('''SELECT * from parts''').fetchall():
db_parts.execute('''UPDATE parts set bin=? where entry=?''',(i,str(row[0])))
conn.commit()
i = i+1
print i
if i>100:
i=0
对于一个 65K 行的数据库,这会运行很长时间。我是使用 sql 的新手,所以我认为我正在做一些明显次优的事情,但我不确定是什么。如何提高此更新的性能?