由于使用了2 session
次呼叫,以下是否会使用连接池中的2个DB连接?
users_from_contacts = db.session.query(User).join(Email, Email.user_id == User.id).join(Contacts, Contacts.email_id = Email.id)
users_from_past = db.session.query(User).join(Group, Group.user_id == User.id)
all_users = users_from_contacts.union_all(users_from_past).all()
答案 0 :(得分:1)
不,因为Session
在正在进行的单连接事务中运行,除非autocommit
设置为非默认值True
,而两个因为只有一个当调用.all()
方法时,从上面的代码发出的SQL查询。
相关文档:
http://docs.sqlalchemy.org/en/rel_0_9/orm/session.html#managing-transactions
http://docs.sqlalchemy.org/en/rel_0_9/orm/tutorial.html#returning-lists-and-scalars