小编eto*_*cky的帖子

如何提高 Python 3.6 中的 SQLite 插入性能?

背景

我想使用 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

生成数据.py

我使用与我的真实数据相同的格式生成了 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)

输入.ssv …

python performance sql-insert

17
推荐指数
1
解决办法
6289
查看次数

标签 统计

performance ×1

python ×1

sql-insert ×1