私はアプリを開発していますが、最近、その考えに気づきました。次のうち、より優れたパフォーマンスを発揮するのはどれですか?
- 1000 エンティティの単一コミットを実行します。
- 各コミットで 50 個のエンティティを使用して 20 個のコミットを実行します。
そして、それはどのように実装依存になると思いますか?
私はアプリを開発していますが、最近、その考えに気づきました。次のうち、より優れたパフォーマンスを発揮するのはどれですか?
そして、それはどのように実装依存になると思いますか?
知る唯一の方法は、テストすることです。両方のオプションを複数回テストし、現実的なデータを使用して、どちらがより優れたパフォーマンスを発揮するかを確認する必要があります。
ただし、一般的に、高価なリソースは
データ量は同じであるため、2番目のオプションを使用して複数の接続を作成するだけです。これは、最初のオプションよりもパフォーマンスが低下する可能性があります。
通常、データベースはセットベースの操作を対象としており、一度に多くの操作を行うほど、全体的なパフォーマンスが向上します (つまり、オプション 1 が最も高速であると一般的に推測されます)。もちろん制限があり、データベースが異なれば動作も異なります。たとえば、一度にコミットされていない作業が多ければ多いほど、ログ ファイルのサイズは大きくなります。また、途中で問題が発生した場合に、複数のバッチをロールバックすることの複雑さを比較検討する必要があります。
休止状態を使用しているため、batch-size
パラメーターをさまざまな異なる値に設定して、最適なものを確認できます。私は、SQLite の値が「20」で、MySQL の値が「100」で、かなり幸運でした。