我正在使用flask-sqlalchemy进行以下查询。两种方法都可以正常工作,但是我想知道,随着表的增加,以一种或另一种方式订购它是否会对性能产生影响:
选项1:
things = Thing.query.filter(Thing.id != 5).order_by(Thing.id.desc()).limit(20).all()
选项2(互换了order_by和filter):
things = Thing.query.order_by(Thing.id.desc()).filter(Thing.id != 5).limit(20).all()
谢谢!
答案 0 :(得分:2)
尽管SQL语法对构成语句的子句的顺序非常严格,但是SQLAlchemy中的ORM查询生成器是生成性的。它允许以更轻松的方式添加条件和选项,并且在执行之前对其进行编译以生成最终的SQL。因此,您的两个查询将导致相同的SQL,因此没有性能差异。