0

私はアプリを開発していますが、最近、その考えに気づきました。次のうち、より優れたパフォーマンスを発揮するのはどれですか?

  1. 1000 エンティティの単一コミットを実行します。
  2. 各コミットで 50 個のエンティティを使用して 20 個のコミットを実行します。

そして、それはどのように実装依存になると思いますか?

4

2 に答える 2

0

知る唯一の方法は、テストすることです。両方のオプションを複数回テストし、現実的なデータを使用して、どちらがより優れたパフォーマンスを発揮するかを確認する必要があります。

ただし、一般的に、高価なリソースは

  • データベース接続の確立
  • ネットワークを介したデータの送信

データ量は同じであるため、2番目のオプションを使用して複数の接続を作成するだけです。これは、最初のオプションよりもパフォーマンスが低下する可能性があります。

于 2012-10-15T15:19:02.590 に答える
0

通常、データベースはセットベースの操作を対象としており、一度に多くの操作を行うほど、全体的なパフォーマンスが向上します (つまり、オプション 1 が最も高速であると一般的に推測されます)。もちろん制限があり、データベースが異なれば動作も異なります。たとえば、一度にコミットされていない作業が多ければ多いほど、ログ ファイルのサイズは大きくなります。また、途中で問題が発生した場合に、複数のバッチをロールバックすることの複雑さを比較検討する必要があります。

休止状態を使用しているため、batch-sizeパラメーターをさまざまな異なる値に設定して、最適なものを確認できます。私は、SQLite の値が「20」で、MySQL の値が「100」で、かなり幸運でした。

于 2012-10-22T21:07:11.453 に答える