Мне нужно вставить 8000+ записей в базу данных SQLite с помощью Django ORM. Эта операция должна выполняться как cronjob примерно раз в минуту.
На данный момент я использую цикл for для повторения всех элементов, а затем вставляю их один за другим.
Пример:
for item in items:
entry = Entry(a1=item.a1, a2=item.a2)
entry.save()
Каков эффективный способ сделать это?
Изменить: Небольшое сравнение между двумя способами вставки.
Без commit_manually decorator (11245 записей):
[email protected] marinetraffic]$ time python manage.py insrec
real 1m50.288s
user 0m6.710s
sys 0m23.445s
Использование commit_manual decorator (11245 записей):
[[email protected] marinetraffic]$ time python manage.py insrec
real 0m18.464s
user 0m5.433s
sys 0m10.163s
Примечание. Тест script также выполняет некоторые другие операции, кроме вставки в базу данных (загружает ZIP файл, извлекает XML файл из ZIP-архива, анализирует XML файл), поэтому время необходимый для выполнения, не обязательно означает время, необходимое для вставки записей.