我不了解它使用的 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
请你能给我一些提示我的管理员发生了什么,我真的不知道我应该改进什么。
谢谢