【发布时间】:2015-10-22 17:55:23
【问题描述】:
有没有一种好方法可以加快查询 SQLALchemy 中涉及关系的混合属性?我有以下两个表:
class Child(Base):
__tablename__ = 'Child'
id = Column(Integer, primary_key=True)
is_boy = Column(Boolean, default=False)
parent_id = Column(Integer, ForeignKey('Parent.id'))
class Parent(Base):
__tablename__ = 'Parent'
id = Column(Integer, primary_key=True)
children = relationship("Child", backref="parent")
@hybrid_property
def children_count(self):
return self.children_count.count()
@children_count.expression
def children_count(cls):
return (select([func.count(Children.id)]).
where(Children.parent_id == cls.id).
label("children_count")
)
当我在 50,000 行中查询 Parent.children_count(每个父母平均有大约 2 个孩子)时,速度非常慢。有没有一种通过索引或其他方式来加快这些查询的好方法?
【问题讨论】:
标签: python sql postgresql sqlalchemy