【问题标题】:Django Transaction.atomic() Vs SQLAlchemy session for bulk updateDjango Transaction.atomic() 与用于批量更新的 SQLAlchemy 会话
【发布时间】:2022-12-09 16:23:04
【问题描述】:

我正在尝试找到使用 python 批量更新 MySQL 数据库的最佳方法

我目前的方式是:

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()

模型是一个包含更新和映射的字典列表是一个 SQLAlchemy 模型 atomic() 比会话快吗?

我也很乐意接受任何其他关于批量更新表格的更好建议。

【问题讨论】:

    标签: python mysql django sqlalchemy orm


    【解决方案1】:

    您还可以通过连接 MySQL 数据库而不是 django 或 flask sqlalchemy orm 来使用简单的 python。看看这篇文章,这可能会对您有所帮助。

    Bulk update MySql with python

    【讨论】:

      猜你喜欢
      • 2019-08-17
      • 2017-06-11
      • 1970-01-01
      • 2013-05-19
      • 2016-11-29
      • 2011-06-03
      • 2013-10-14
      • 1970-01-01
      • 2011-12-07
      相关资源
      最近更新 更多