SQLAlchemy,我什么时候承诺?

SQLAlchemy,我什么时候承诺?,sqlalchemy,Sqlalchemy,我想提高SQLAlchemy的性能,在一个API调用中,我到处都有提交,我是否要聚合这些会话添加,并在API调用结束时进行提交?或者我到处都这么做有关系吗 谢谢 提交应该发生在相关调用的逻辑块之后,您希望保存所有这些记录(对象)或不保存任何记录。如果其中一个失败了,您希望它们都失败(回滚)。另一方面,将不相关的调用组合到一个事务中可能会导致意外的副作用,发生意外错误,并在实际应该保存时回滚一些您不打算回滚的内容。这不是您要做的,但我以前在性能方面看到过这一点 无论如何,通常,在每个API调用结束

我想提高SQLAlchemy的性能,在一个API调用中,我到处都有提交,我是否要聚合这些会话添加,并在API调用结束时进行提交?或者我到处都这么做有关系吗


谢谢

提交应该发生在相关调用的逻辑块之后,您希望保存所有这些记录(对象)或不保存任何记录。如果其中一个失败了,您希望它们都失败(回滚)。另一方面,将不相关的调用组合到一个事务中可能会导致意外的副作用,发生意外错误,并在实际应该保存时回滚一些您不打算回滚的内容。这不是您要做的,但我以前在性能方面看到过这一点

无论如何,通常,在每个API调用结束时,我都有一个提交,因为我把API调用看作是“全无”的处理,如果一个唯一的密钥违规在中间某个地方被击中,我怀疑调用方会很高兴。 我在SA文档中找到了这一页,内容涉及会话,并解释了如何安排会话、事务等。