12

我已经使用 SQLObject 很长一段时间了,但注意到 SQLAlchemy 在过去几年中变得越来越流行:http ://www.google.com/trends?q=sqlobject,+sqlalchemy

切换到 SQLAlchemy 是否有令人信服的理由?它相对于 SQLObject 的性能如何?它的可用性?使用 Elixir 会增加多少性能开销?

我的需求是基本的、简单的 CRUD。没有什么异国情调。

我看过这个相关的问题,但它是在 1 年前提出的,并没有太多的回应。

4

1 回答 1

11

我在 TurboGears 0.9 中广泛使用 SqlObject,但在 TurboGears 之前就切换到 SqlAlchemy + elixir 作为 SqlObject 的替代品。

请注意,即使没有长生不老药,SqlAlchemy 也有它自己的声明式样式类定义: http ://docs.sqlalchemy.org/en/rel_1_0/orm/extensions/declarative/index.html

如果您不确定性能,那么在您的应用程序中放入 elixir 作为替代品并进行一些快速分析应该不会有太多工作量。我猜想 SqlObject/SQL/SQLA+elixir 之间的性能差异与向/从数据库写入和读取数据所花费的时间相比是微不足道的。

请注意,SqlAlchemy 对关系的急切/延迟加载提供了更大的控制,这在很多情况下有助于您的应用程序的内存占用和性能。

可能最令人信服的切换原因是 SqlAlchemy 正在积极开发中(尽管我对 SqlObject 的开发状态不再了解太多)。作为次要原因,您可以放心,如果您的需求变得更复杂,很可能有其他人已经尝试使用 SqlAlchemy 成功地将 Python 对象的方钉插入 SQL 的圆孔中。

于 2010-11-03T11:53:48.803 回答