0

特定のキー パターンのデータベース プロバイダーを選択するためのガイダンスを探しています。

唯一のキー フィールドは、事前に割り当てられた固有の順次増加する番号です。毎日、5 万から 10 万のアイテムが追加、処理 (更新) され、その後 1 週間ほど保持されます。その後、通常、最も番号の小さいレコードが削除されます。レコード数は日によって大きく変動することはありませんが、週末には減少する可能性があります。数値はおそらく 100M 程度で 1 に戻ります。

インデックスの検索、追加、および削除の効率が一定に保たれるデータベース実装を見つける必要があります。キー値の範囲が連続的に上に移動するにつれて、パフォーマンスが低下するのではないかと心配する必要がありますか?

4

1 に答える 1

2

インデックスの検索、追加、削除は一定のまま

挿入ごとにインデックスを再構築することで一定に保つことができます(常に非常に遅い-パフォーマンスの低下はまったくありません:))、またはインデックスメンテナンスを毎時間/日などに実行することで一定に近づけることができます.

キー値の範囲が連続的に上に移動すると、パフォーマンスが低下する可能性がありますか?

インデックスがある限り、パフォーマンスは logN になるはずです。たとえば、1,000,000 行の場合、1,000 行の約半分の速度になります (インデックス付きの値を検索する場合)。(1,000,000,000,000 は再びその速度の半分になります)。

いいえ、パフォーマンスについて心配する必要はありません。

数値は、おそらく 100M 程度で 1 に戻ります。

あなたがしたい場合は、[OK。通常、実際には必要ありません。大きな int を使用するだけです。

パフォーマンスに関してはいつものように、やりたいことをテストしてください。10,000,000 行を挿入するスクリプトを作成し、何が起こるか見てみましょう。

ここで言いたいのは、ID を 1 億レコードでラップする場合、最悪の場合、実際にすべての ID を割り当ててしまうことです。これは、断片化されたインデックスの状態も表します (たとえば、100K レコードしかないが、それらは 10M のスペースに分散されています) - しかし、インデックス/データベースのメンテナンスを正しく行いますか?

于 2009-03-16T23:17:57.373 に答える