1

Identity フィールド「Id」を Primary Key(clustered) として持つログイン テーブルと、 email 、 password などの他のフィールドがあります。このテーブルを使用するのは、ユーザーを認証するときだけです。その後は常にログインテーブルへの外部キーLogin_idを持つuser_profile、user_commentsなどの他のテーブルをクエリします。私の質問は、user_profile および user_comments テーブルの Login_id をクラスター化インデックスにするのは良い考えですか? ユーザーが正常に認証された後、将来子テーブルを照会するために FormsAuthentication.SetAuthCookie に LoginId を保持するため、Login テーブルとの結合は行いません。

C# と .Net を使用して Web アプリを開発しています。

前もって感謝します !

4

1 に答える 1

1

常に Login_id を使用して user_profile および user_comments からデータを取得するため、これらのテーブルで login_id を使用してこれらの検索が Id などの他の列よりも頻繁に行われると仮定すると、「login_id」はクラスター化インデックス化する必要があります。基本的に、最もクエリされる列でクラスター化インデックスを使用することをお勧めします。「名」と「姓」のような 2 つの列である可能性があります。MSDN から

できるだけ少ない列でクラスター化インデックス キーを定義することが重要です。大きなクラスター化インデックス キーが定義されている場合、同じテーブルに定義されている非クラスター化インデックスは、非クラスター化インデックス エントリにクラスター化キーが含まれているため、非常に大きくなります。十分な空き領域がないディスクに SQL スクリプトを保存しても、インデックス チューニング ウィザードはエラーを返しません。

于 2012-12-03T23:00:42.730 に答える