数据库提交性能

时间:2012-10-15 15:13:53

标签: database performance hibernate jpa

我开发了一个应用程序,最近我抓住了这个想法。以下哪项有更好的表现?

  1. 执行1000个实体的单次提交。
  2. 每次提交时执行20次提交,50个实体。
  3. 您认为实施可靠性如何?

2 个答案:

答案 0 :(得分:0)

要知道的唯一方法是测试 - 您需要多次使用这两个选项进行测试,并使用实际数据找出哪个选项会更好。

然而,一般来说,昂贵的资源是

  • 建立数据库连接
  • 通过网络传输数据

由于数据量相同,您只需使用第二个选项创建多个连接。这可能比你的第一个选择更差。

答案 1 :(得分:0)

通常,数据库面向基于集合的操作,一次性操作越多,整体性能就越好(即我的一般猜测是选项1将是最快的)。当然有限制,不同的数据库表现不同。例如,您在任何时候都有更多未提交的工作,您的日志文件必须越大。如果中间出现问题,您还需要权衡回滚多批次的额外复杂性。

由于您正在使用休眠,因此可以将batch-size参数设置为各种不同的值,以查看哪种方法最适合您。我非常幸运,SQLite中的值为'20',MySQL中的值为'100'。