我开发了一个应用程序,最近我突然想到了。以下哪项具有更好的性能?
- 执行 1000 个实体的单次提交。
- 每次提交时使用 50 个实体执行 20 次提交。
您认为它的实施可靠性如何?
我开发了一个应用程序,最近我突然想到了。以下哪项具有更好的性能?
您认为它的实施可靠性如何?
知道的唯一方法是测试 - 您需要多次测试这两个选项,并使用真实数据来找出哪个会表现更好。
然而,一般来说,昂贵的资源是
由于数据量相同,您只需使用第二个选项创建多个连接。这可能比您的第一个选项执行得更差。
通常,数据库面向基于集合的操作,你一次做的越多,你的整体性能就越好(即我的一般猜测是选项 1 会是最快的)。当然有限制,不同的数据库表现不同。例如,您在任何时候未提交的工作越多,您的日志文件就必须越大。如果中间出现问题,您还需要权衡回滚多个批次的额外复杂性。
由于您使用的是休眠,您可以将batch-size
参数设置为各种不同的值,以查看最适合您的值。我很幸运,SQLite 中的值为“20”,MySQL 中的值为“100”。