我想使用 Python 向 SQLite 插入 100 万条记录。我尝试了多种方法来改进它,但仍然不太满意。数据库将文件加载到内存使用 0.23 秒(pass在下面搜索)但 SQLite 1.77 秒加载和插入到文件。
英特尔酷睿 i7-7700 @ 3.6GHz
16GB RAM
美光 1100 256GB 固态硬盘,Windows 10 x64
Python 3.6.5 Minconda
sqlite3.version 2.6.0
我使用与我的真实数据相同的格式生成了 100 万个测试输入数据。
import time
start_time = time.time()
with open('input.ssv', 'w') as out:
symbols = ['AUDUSD','EURUSD','GBPUSD','NZDUSD','USDCAD','USDCHF','USDJPY','USDCNY','USDHKD']
lines = []
for i in range(0,1*1000*1000):
q1, r1, q2, r2 = i//100000, i%100000, (i+1)//100000, (i+1)%100000
line = '{} {}.{:05d} {}.{:05d}'.format(symbols[i%len(symbols)], q1, r1, q2, r2)
lines.append(line)
out.write('\n'.join(lines))
print(time.time()-start_time, i)
Run Code Online (Sandbox Code Playgroud)