我的SQLAlchemy数据库中有以下表格:
DSource
表格:
class DSource(Base):
__tablename__ = 'dsource'
source_id = Column(Integer, primary_key=True)
subjects= relationship("Subject")
Subject
表格:
DSequence
表格:
class DSequence(Base):
__tablename__ = 'dsequence'
sequence_id = Column(Integer, primary_key=True)
subject_id = Column(Integer, ForeignKey("subject.subject_id"),nullable=False)
frames= relationship("Frame")
和Frame
表:
class Frame(Base):
__tablename__ = 'frame'
f_id = Column(Integer, primary_key=True)
sequence_id=Column(Integer, ForeignKey("dsequence.sequence_id"),nullable=False)
action_units=Column(String)
expression=Column(String)
pts3d=Column(String)
pts2d=Column(String)
现在,我想对Frame
表编写一个查询,该表提供带有source_id=2
的所有帧。一种方法是编写一个嵌套循环,用dsource=2
检索所有subjects
,然后为每个主题找到序列,然后为每个序列找到相应的帧。在
fr=session.query(Frame,Subject,DSequence,DSource).filter(DSource.source_id==2).all()
但是查询具有这些嵌套关系的数据库非常慢,因为在Frame
表中,我有大约90000个帧。
有没有什么方法可以让我查询得更快?我不确定joinedload
是否能帮我解决这个问题。在
我找到了解决方案,上面的查询有一个非常简单的方法,而且非常快:
相关问题 更多 >
编程相关推荐