Обновление или создание нескольких строк - Django
Я пытаюсь найти наиболее эффективный способ обновить или создать кучу строк (около 10K - 30k) из json в моей базе данных.
Я получаю json с данными, которые я хочу поместить в свою базу данных.
Я пробовал использовать атомарные транзакции Django, но это все равно очень медленно. Сейчас я использую библиотеку this, но она очень медленная: обновление 15k строк занимает около 1 часа. Но это самый короткий способ, который я нашел на сегодняшний день.
Я прочитал много вопросов и статей, но не могу найти самый быстрый способ сделать это.
Вот как выглядят мои методы обновления (с использованием библиотеки):
def update_data_in_db(data):
objs = []
for item in data:
try:
objs.append(Item(
id=item['id'],
name=item.get('name'),
slug=item.get('slug'),
except Exception as err:
logger.exception(err)
print(err)
try:
Currency.objects.bulk_update_or_create(objs, ['name', 'slug'], match_field='id')
except Exception as err:
print(err)
return [obj.id for obj in objs]