在Java代码中频繁提交插入数据库是否是一个好习惯?

我的java代码读取excel文件,并将数据写入(插入)到oracle数据库。

例如,我需要读取2000行excel文件中的一些类似的单元格,我的代码读取它,插入到数据库,并在提交后。

第一个约1000行插入很快,而另外1000行插入很长。

缺乏记忆的可能原因。

所以,我认为在数据加载到数据库时要经常提交(例如,在每读取50行之后进行提交)。

这样做是好的做法,还是有其他方法可以解决这个问题?

提交用于数据库中的primefaces操作。 你不只是把它们扔在身边,因为你觉得它。 每个事务通常(取决于隔离级别,但是假设串行隔离)是独立的,全有或全无的操作。

如果您不知道是什么导致数据库事务“长时间”,则应该阅读日志或与知道如何诊断“减速”的原因的人交谈,并对其进行补救。 最有可能的原因是configuration不好。

底线是,人们拥有插入100,000或甚至数百万行的事务作为单个事务,而不会造成问题。 一般来说,最好不要因为性能原因而经常犯下错误。

数据库必须始终保持一致,即只有在数据一致的情况下才提交,即使之后程序崩溃也是如此

(如果你不需要这种一致性,那么你为什么使用数据库?)

PS:你不会那么快就失去记忆。