1

我不了解它使用的 Flask-Admin 和 sql 查询。我有性能问题,但主要原因是调用了不合理的查询。

我有模型:

class Hotel(Base):
    __tablename__ = "hotel"
    id = Column(Integer, primary_key=True, autoincrement=True)
    country_id = Column(Integer, ForeignKey('country.id'))
    area_id = Column(Integer, ForeignKey('area.id'))
    ....
    photos = relationship(Photo, backref=backref('hotel', lazy='select'), lazy='dynamic')
    terms = relationship(Term, backref=backref('hotel', lazy='noload'), lazy='dynamic')

如果我想阅读 Flask-administration 中一家酒店的信息,有几个可疑的查询

例如。以下查询通过争论被调用了百万次,这没有意义

[Sun Apr 13 17:31:22 2014] [error] INFO sqlalchemy.engine.base.Engine SELECT photo.id AS photo_id, photo.hotel_id AS     photo_hotel_id, photo.filename AS photo_filename
[Sun Apr 13 17:31:22 2014] [error] FROM photo
[Sun Apr 13 17:31:22 2014] [error] WHERE %s = photo.hotel_id
[Sun Apr 13 17:31:22 2014] [error] 2014-04-13 17:31:22,549 INFO     sqlalchemy.engine.base.Engine (1L,)

并且在没有过滤所选hotel.id的情况下调用另一个查询,并且查询直到超时才完成,并且再次无用

    [Sun Apr 13 17:31:22 2014] [error] INFO sqlalchemy.engine.base.Engine SELECT term.id AS term_id, term.hotel_id AS term_hotel_id, ...
[Sun Apr 13 17:31:22 2014] [error] FROM term

请你能给我一些提示我的管理员发生了什么,我真的不知道我应该改进什么。

谢谢

4

0 回答 0