2010-11-01 48 views
10

我一直在使用SQLObject的很長一段時間,但注意到,在SQLAlchemy的過去幾年已經成爲了很多更受歡迎:http://www.google.com/trends?q=sqlobject,+sqlalchemy我應該使用SQLObject,SQLAlchemy還是SQLAlchemy + Elixir?

是否有令人信服的理由以切換到SQLAlchemy的?它相對於SQLObject的性能如何?它的可用性?使用Elixir增加的性能開銷是多少?

我的需求是基本的,簡單的CRUD。沒有什麼特別的。

我見過this related question,但它在1年前被問及並沒有太多回應。

回答

10

作爲TurboGears 0.9的一部分,我廣泛使用了SqlObject,但即使在TurboGears之前,它也切換到SqlAlchemy + elixir替代SqlObject。即使沒有靈藥,SQLAlchemy的有它

注意自己的聲明樣式類定義: http://docs.sqlalchemy.org/en/rel_1_0/orm/extensions/declarative/index.html

如果您不確定的表現,它不應該太多的工作在靈藥下降,因爲在你的應用程序的替代品並做一些快速分析。我猜測SqlObject/SQL/SQLA + elixir之間的性能差異與花在寫入數據庫和從數據庫中讀取數據所花費的時間相比是蒼白的。

注意的SQLAlchemy得到超過relationshipscolumns急切/延遲加載,這有助於在很多情況下你的應用程序的內存佔用&性能更大的控制權。

也許最有說服力的理由是,SqlAlchemy是它正在被積極開發(儘管我對SqlObject的開發狀態瞭解不多)。 作爲次要原因,您可以放心,如果您的需求變得更加複雜,很可能有其他人已經試圖用SqlAlchemy成功地將Python對象的方塊釘入SQL的圓洞。

相關問題