0

ユーザーを積極的に検索する必要のあるウェブサイトがあります。私はすべての完全なユーザーの詳細へのリンクを含むユーザーテーブルを持っていますが、それはあなた自身のアカウントを見るときにのみ本当に興味があります。他のユーザーを検索する場合、必要な情報は非常に限られているため、検索をより高速かつ効率的にするために、ユーザーの詳細を更新するたびに、コードはUserLightという別のテーブルにエントリを書き込みます。このテーブルには約8列しか含まれていません。そして、すべて純粋なデータです。つまり、他の子テーブルやコレクションオブジェクトへのリンクはなく、速度を上げるためにデータを文字列化するだけです。各ユーザーは、一度に1つのUserLightエントリのみを持つことができます。これは、自分のアカウントが他のユーザーにどのように表示されるかを要約したものです。

私の質問はパフォーマンスに関するものですが、UserIdをUserテーブルで外部キー制約にすることは重要ですか?したがって、Userに対応する行がないとUserLightエントリを作成できません。また、User行を削除すると、UserLightエントリが自動的にカスケードされて削除されます。これは理想的であり、どのようにしたいかですが、UserLightテーブルにこのFK制約があると、このテーブルとの間の読み取りまたは書き込み操作のパフォーマンスが低下するのではないかと思います。もしそうなら、FK制約を削除し、制約や他のオブジェクトへの外部参照のない完全に分離されたテーブルを作成してパフォーマンスを高速化し、ハウスキーピングを手動で管理するだけですが、FK制約がパフォーマンスにまったく影響しない場合は-Iそれを維持することを好むでしょう。

4

1 に答える 1

1

挿入/削除/更新の異常を回避するために、データを制限することをお勧めします。

于 2012-11-29T11:22:02.187 に答える