Django Transaction.atomic() Vs SQLAlchemy session для массового обновления

Я пытаюсь найти лучший способ массового обновления БД MySQL с помощью python

в настоящее время у меня есть следующие способы:

req_model.objects.bulk_update(update_queries, list(column_to_update))

В этом методе проблема заключается в части выборки, необходимой для update_queries который представляет собой список обновленных объектов модели

прочесывая интернет, я узнал о транзакции Django transaction.atomic():

with transaction.atomic():
  for key, value in user_ids_dict:
    model.objects.filter(id=key).update(some_value=value)

Другая проблема заключается в том, что Django не поддерживает составные первичные ключи, кроме как указывая их в метаклассе

другой метод (который я сейчас использую) - это использование сессий SQLAlchemy (это работает, но очень медленно из-за ограничений сервера):

self.init_session()
self.execute_bulk_update(model, mappings)
self.session.commit()

model - список dicts, содержащих обновления и отображения - модель SQLAlchemy atomic() быстрее сессии?

Я также с радостью приму любые другие лучшие предложения по расширению таблиц.

Вы также можете использовать простой python, соединяясь с вашей БД MySQL, а не django или flask sqlalchemy orm. Посмотрите этот пост, он может помочь вам.

Обновление MySql с помощью python

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