相关疑难解决方法(0)

使用Django的ORM加速批量插入?

我打算使用django的ORM将从约750个文件(每个~250MB)中取出的十亿条记录上传到数据库.目前每个文件需要大约20分钟才能处理,我想知道是否有任何方法可以加速这个过程.

我采取了以下措施:

我还能做些什么来加快速度?以下是我的一些想法:

欢迎任何关于这些项目或任何其他想法的指针:)

django optimization orm bulkinsert

44
推荐指数
5
解决办法
3万
查看次数

peewee.OperationalError:只有150行*8列的upsert上有太多的SQL变量

使用下面的示例,在我的机器上,设置range(150)会导致错误,而range(100)不是:

from peewee import *

database = SqliteDatabase(None)

class Base(Model):
    class Meta:
        database = database


colnames = ["A", "B", "C", "D", "E", "F", "G", "H"]
cols = {x: TextField() for x in colnames}

table = type('mytable', (Base,), cols)
database.init('test.db')
database.create_tables([table])

data = []
for x in range(150):
    data.append({x: 1 for x in colnames})


with database.atomic() as txn:
    table.insert_many(data).upsert().execute()
Run Code Online (Sandbox Code Playgroud)

导致:

Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
  File "/cluster/home/ifiddes/python2.7/lib/python2.7/site-packages/peewee.py", line 3213, in execute …
Run Code Online (Sandbox Code Playgroud)

python sqlite peewee

2
推荐指数
1
解决办法
2944
查看次数

标签 统计

bulkinsert ×1

django ×1

optimization ×1

orm ×1

peewee ×1

python ×1

sqlite ×1