2016-12-20 11 views
0

私は単一の列を持つテーブルを作成する必要があります:emailテーブルが1列のみの場合

単一の列を持つテーブルを作成し、emailにクラスタード・インデックスを追加できますか?または、私は列を作成してIDを作成し、クラスタ化しないでください。email

テーブルには約100万のメールアドレスが格納されます。

デベロッパーはこのテーブルを使用します。彼らは私が見ている通りにwhere xxxx in (select email from table);を実行すると思いますが、このテーブルを使用する方法は他にありません。

新しい電子メールを挿入する週に1回マージを実行します。電子メールで一意にクラスタ化されている場合は、マージを実行する必要があるかどうかはわかりません。私はちょうど挿入してうまくいけば、レコードが重複していればそれを挿入して残りの部分を続けるだろうか?

+0

単一の列テーブルをインデックスする必要はありません。インデックスはどのように役立ちますか? – sagi

+0

@sagi、おそらく存在するかどうかを知りたいですか? –

+2

質問に答えるには...はい、できます。列をPK、Clusteredとして作成します。重複を挿入しようとすると、エラーが発生するので、それを処理する必要があります。 –

答えて

0

これは主に個人の選択です。コードが挿入/更新/削除されているときに、アイデンティティ列をクラスタード・インデックス・キーとして使用するとパフォーマンスが向上します。

私はクラスタ化インデックスとしてID列を作成し、電子メールを別の列にします。クラスタード・インデックス・キーを常に増やしていくことが理想的です。

同じメールを2回入力するとどうなりますか?それは2つの別々の行か、エラーの原因になるはずですか?これらは、この表を設計するときに考えるべきことです。

関連する問題