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を扱うのが初めてなので、明らかに最適ではないことをしていると思いますが、何がわからないのですか。この更新プログラムのパフォーマンスを向上させるにはどうすればよいですか?