事前にsqliteでtestdbというDBを作っておいて、
sqlite> CREATE TABLE hash ( id INTEGER PRIMARY KEY , value TEXT );
でhashというテーブルを作成しておきます。
その後、neta.csvというファイルの中身をhashテーブルにinsertしていきます。
------------------------------------------------------------------------------------------
#!/usr/bin/env python
import csv
import sqlite3
import time
if __name__ == '__main__':
start = time.time()
c = sqlite3.connect('./testdb')
i = 0
l = []
reader = csv.reader(open("./neta.csv"))
for row in reader:
id = row[0]
value = row[1]
t = (id,value)
l.append(t)
i += 1
if i % 200000 == 0:
c.executemany('insert into hash (id,value) values(?,?)',l)
c.commit()
l = []
c.commit()
c.close()
print time.time()-start
------------------------------------------------------------------------------------------
上記を実行したところ、13sで100万件のinsertが完了しました。
以前、1件ずつやった場合だと、27sだったので約2倍の高速化につながりました。