【问题标题】:why is that people use sqlalchemy CORE to save data and use sqlalchemy ORM to query data为什么人们使用sqlalchemy CORE保存数据并使用sqlalchemy ORM查询数据
【发布时间】:2017-11-28 20:58:34
【问题描述】:

我发现有些人使用sqlalchemy ORM查询数据,却使用sqlalchemy CORE插入数据。他们为什么那样做?为什么他们不在一个 Python 代码(类)中保持一致?

Sqlalchemy ORM 最终会转化为 CORE,对吧?同时使用 core 和 orm 是不是让程序更快?我在这里找到了一句话(What is the difference between sqlalchemy core and ORM?

特别是基于仅在运行时可用的信息

这是否意味着 CORE 更快还是什么?我真的很困惑。任何人都可以提供帮助,在此先感谢。

【问题讨论】:

    标签: python orm sqlalchemy


    【解决方案1】:

    您应该查看文档中的this performance comparison and explanation。基本上,它解释了 ORM 如何以及为什么不适合 Core 可能处理得很好的大批量插入。 Session 中也有 bulk operations 可用,但它们各有取舍。

    虽然 ORM 确实构建在 Core 之上,但它所做的不仅仅是简单的“将这些对象保存到数据库”。它跟踪会话中对象的更改,并定期将这些挂起的更改刷新到数据库。这是unit of work 模式的一部分。所有这些记账都是有代价的,但作为回报,在将复杂对象图持久保存到关系数据库时,您不必担心操作顺序。有时您并不需要所有这些,而只想将一堆行插入到数据库中。

    【讨论】:

      猜你喜欢
      • 2015-04-13
      • 2021-09-22
      • 1970-01-01
      • 2021-02-06
      • 2010-09-21
      • 2018-01-09
      • 1970-01-01
      相关资源
      最近更新 更多