如果我使用多个查询对象、代码行或函数来构建最终查询,sqlalchemy 的效率如何?执行每个步骤时是否会影响性能,或者它是否足够聪明,可以弄清楚发生了什么并只执行最终查询?
例如说我有这样做的代码:
get_shiniest_robots(self, polish_date):
"""Get robot_ids for robots with recently polished spikes."""
return session.query(Robots.robot_id).filter_by(spike_polish_date > polish_date)
然后我有另一个功能
get_dullest_robots(self, polish_date):
"""Get robot_ids for robots that have not been polished lately."""
return session.query(Robots.robot_id).filter_by(~Robots.robot_id.in_(get_shiniest_robots(polish_date))).values(Robots.robot_id)
get_dullest_robots() 是否会向数据库发送两个查询而不是一个?