1

Oracle を DataStore として使用するまったく新しいアプリケーションが本番環境にプッシュされます。データベースはCBOを使用しており、インデックス作成を行う列を特定しました。特定のテーブルのレコードの総数は、6 か月後に 400 万になると予想しています。その後、レコードはほとんど追加されず、インデックス付き列のレコードは更新されません。ほとんどの更新は、NonIndexed 列に対して行われることを意味します。

今すぐインデックスを作成することをお勧めしますか? または、数か月待つ必要がありますか?

4

1 に答える 1

1

テーブルにインデックスが必要な場合、テーブル内の行数がキャッシュに適切に保持できる数を超えると、パフォーマンスが大幅に低下します (テーブル全体のスキャン + 実際の I/O)。それが 20000 行であると仮定します。これをマジックナンバーと呼びます。1 週間の生産で 20000 行に達しました。その後、行が追加されるにつれて、テーブルのクエリと更新は平均して徐々に遅くなります。

おそらく、インデックス付きフィールドを持つ新しい行を挿入するオーバーヘッドについて心配しているでしょう。それが一撃です。インデックスの追加を遅らせると、何十ものクエリと更新に対するトレードになります。

トレードオフは、現在インデックスを追加することを主に支持しています。特に、そのマジック ナンバー (20000?) が実際に何であるかはわかりません。より大きくなる可能性があります。または小さい。

于 2013-05-08T08:15:37.030 に答える