0

我开发了一个应用程序,最近我突然想到了。以下哪项具有更好的性能?

  1. 执行 1000 个实体的单次提交。
  2. 每次提交时使用 50 个实体执行 20 次提交。

您认为它的实施可靠性如何?

4

2 回答 2

0

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

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

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

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

于 2012-10-15T15:19:02.590 回答
0

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

由于您使用的是休眠,您可以将batch-size参数设置为各种不同的值,以查看最适合您的值。我很幸运,SQLite 中的值为“20”,MySQL 中的值为“100”。

于 2012-10-22T21:07:11.453 回答