Лучшая практика для многократного вызова функции save()

При вызове сохранения много раз, оно работает, но занимает несколько минут.

num = 100000
for i in range(num):
    lu = sm.UserType(type_id=1)
    lu.save()

В моем понимании сохранить исполнение SQL.

Так что если я могу собрать save вместе, это займет меньше времени.

Существует ли практика для этого?

Вы можете работать с .bulk_create(…) [Django-doc]:

num = 100000

sm.UserType.objects.bulk_create([
    sm.UserType(type_id=1)
    for i in range(num)
])

Для большинства баз данных это позволит создать все записи с помощью одного запроса, за исключением SQLite, который будет создавать объекты партиями по 999 элементов.

Вернуться на верх