[解決済み] データベースのインデックスはいくつあっても足りない?
質問
私は、かなり大規模な Oracle データベース (ただし、私の質問は他のデータベースにも同様に当てはまります) を使用するプロジェクトに取り組んでいます。 私たちは、ユーザーがフィールドのほぼすべての可能な組み合わせで検索できるようにする Web インターフェイスを持っています。
これらの検索を高速化するために、ユーザーが一般的に検索すると思われるフィールドおよびフィールドの組み合わせにインデックスを追加しています。 しかし、顧客がこのソフトウェアをどのように使用するのかがよく分からないため、どのインデックスを作成すべきかを判断するのは困難です。
スペースは心配ありません。4 テラバイトの RAID ドライブがありますが、使っているのはそのうちのほんの一部だけです。 しかし、あまりに多くのインデックスを持つことによるパフォーマンスへの悪影響が心配です。 これらのインデックスは、行が追加、削除、または修正されるたびに更新される必要があるので、1 つのテーブルに何十ものインデックスを持つことは良い考えではないと想像しています。
では、何個のインデックスが多すぎると考えられるでしょうか? 10? 25? 50? それとも、本当によくある明らかなケースだけを取り上げて、それ以外は無視すべきなのでしょうか?
どのように解決するのですか?
テーブル上で発生する操作に依存します。
SELECTがたくさんあって、変更がほとんどない場合、好きなだけインデックスを作成してください...これらはSELECT文の速度を上げる(可能性がある)でしょう。
テーブルがUPDATE、INSERT、DELETEによって激しくヒットする場合...これらのオペレーションが行われるたびにすべて修正される必要があるため、多くのインデックスを使用すると非常に遅くなります。
とはいえ、何もしないテーブルに多くの無意味なインデックスを追加することは可能です。 2 つの異なる値を持つ列に B-Tree インデックスを追加しても、データを検索するという点では何も追加されないので、無意味です。 列の値がよりユニークであればあるほど、インデックスの恩恵を受けることになります。
関連
-
[解決済み] ATTACHで開いたSQLiteデータベースファイルのテーブルを一覧表示するにはどうすればよいですか?
-
[解決済み] MySQLデータベースの名前を素早く変更する(スキーマ名を変更する)方法は?
-
[解決済み] mysqlデータベースのサイズを取得する方法は?
-
[解決済み] テーブルを設計する際に、1対1、1対多、多対多の関係をどのように実装するか?
-
[解決済み】マルチインデックスとマルチカラムインデックスの比較
-
[解決済み] データベースにはすでにオブジェクト名が存在する
-
[解決済み] マスター・マスターとマスター・スレーブ、どちらのデータベース・アーキテクチャが良いのか?
-
[解決済み] 変更履歴/監査データベーステーブルの最適なデザインは?[クローズド]
-
[解決済み] Mavenプラグインを1回だけ実行する?
-
[解決済み] データベースに郵便番号を格納する必要があります。カラムの大きさはどのくらいにすればよいでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] データベース レコードを削除するかしないか
-
[解決済み] データベースにはすでにオブジェクト名が存在する
-
[解決済み] マスター・マスターとマスター・スレーブ、どちらのデータベース・アーキテクチャが良いのか?
-
[解決済み] データベースの設計に外部キーは本当に必要なのか?
-
[解決済み] なぜORMを使う必要があるのですか?[クローズド]
-
[解決済み] 変更履歴/監査データベーステーブルの最適なデザインは?[クローズド]
-
[解決済み] SQLite UPSERT / UPDATE OR INSERT
-
[解決済み] リレーショナル・データベースにおけるカタログとスキーマの違いは何ですか?
-
[解決済み] データベースに郵便番号を格納する必要があります。カラムの大きさはどのくらいにすればよいでしょうか?
-
[解決済み] SQLITE SQLダンプファイルをPOSTGRESQLに変換する