SQLAlchemy flush()和commit()SQLAlchemy 之间有什么区别?
我已经阅读了文档,但没有更明智 - 他们似乎假设我没有预先理解.
我对它们对内存使用的影响特别感兴趣.我正在从一系列文件(总共约500万行)中将一些数据加载到数据库中,并且我的会话偶尔会崩溃 - 它是一个大型数据库和一台内存不足的机器.
我想知道我是否使用了太多但commit()没有足够的flush()电话 - 但是如果没有真正了解其中的差异,那就很难说了!
我用Google搜索了很多,了解org.hibernate.Session.flush()并org.hibernate.Session不少,知道每种方法的目的,但仍然有一个问题.
flush()手动调用方法是一种好习惯吗?如org.hibernate.Transaction.commit()文档中所述,
必须在提交事务并关闭会话之前在工作单元结束时调用(取决于flush-mode,Transaction.commit()调用此方法).
org.hibernate.Session.flush()如果org.hibernate.Session能自动调用,你能解释一下手工打电话的目的吗?
谢谢!