sqlalchemy - 太多方法/属性的性能问题?

时间:2011-04-19 00:39:49

标签: python sqlalchemy

我已经使用sqlalchemy几年来替代Django模型了。我发现将自定义方法附加到这些模型非常方便

class Widget(Base):
     __tablename__ = 'widgets'

     id = Column(Integer, primary_key=True)
     name = Column(Unicode(100))

     def get_slug(self, max_length=50):
         return slugify(self.name)[:max_length]

如果模型有几十个复杂的方法(50-75行),那么在执行像session.query(Widget)这样的事情时是否会有性能损失?这些被加载到每个返回的行的内存中,将这些较少使用的方法移动到辅助函数并导入为必要的更高效吗?

def some_helper_function(widget):
    ':param widget: a instance of Widget()'
    # do something

谢谢!

1 个答案:

答案 0 :(得分:1)

使用SA仅使用session.query(...)从数据库加载对象时,不会有任何性能损失 并且你绝对不应该为了性能而将任何方法移动到任何辅助函数,因为这样做基本上会破坏模型的面向对象的范例。 / p>