bulk_create 批量commit数据

 

在Django中需要向数据库中插入多条数据(list)。使用传统方式每次save()的时候都会访问一次数据库,导致性能问题。

 

在django1.4以后加入了新的特性。使用django.db.models.query.QuerySet.bulk_create()批量创建对象,减少SQL查询次数。

改进如下:

task_log_obj = []
for host_id in self.hosts_list:
    task_log_obj.append(models.TaskLog(
        host_id=host_id,
        task_id=task_obj.id,
        result="init...",
        status=2
    ))

models.TaskLog.objects.bulk_create(task_log_obj, batch_size=100)

 

posted @ 2017-08-24 14:37  Vincen_shen  阅读(633)  评论(0)    收藏  举报