sqlalchemy - проблемы с производительностью слишком большого количества методов / атрибутов? - PullRequest
0 голосов
/ 19 апреля 2011

Я использую 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]

Есть ли снижение производительности при выполнении таких операций, как session.query(Widget), если модель имеет несколько десятков сложныхметоды (50-75 строк)Загружаются ли они в память для каждой возвращаемой строки, и было бы более эффективно переместить некоторые из этих менее используемых методов в вспомогательные функции и импортировать их по мере необходимости?

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

Спасибо!

1 Ответ

1 голос
/ 19 апреля 2011

У вас не будет никакого снижения производительности при загрузке объектов из базы данных с использованием SA с использованием просто session.query(...).
И вам определенно не следует перемещать какие-либо методы в какую-либо вспомогательную функцию ради производительности , так как при этом вы в основном уничтожили бы объектно-ориентированную парадигму вашей модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...