I have some heavy queries where performance requires that filters are applied before joins. According to some SO posts
The query optimizer is often smart enough to filter early.
session.query(Table1.post_id)\
.join(Table2, Table1.post_id == Table2.post_id)\
.filter(and_(Table1.user_id == thing1.id, Table2.blob_id == thing2.id))
Should I expect this type of query to be performed such that filters are applied before the join?