2016-12-20 3 views
0

Ich muss eine Tabelle mit einer einzigen Spalte erstellen: email.Tabelle mit nur einer Spalte?

Kann ich eine Tabelle mit einer einzelnen Spalte erstellen und einen gruppierten Index unter email hinzufügen? Oder sollte ich Spalte erstellen und Identität und eine nicht geclusterte unter email?

Die Tabelle enthält ungefähr eine Million E-Mail-Adressen.

Entwickler werden diese Tabelle verwenden, und ich stelle mir vor, sie werden nur tun where xxxx in (select email from table); wie ich es sehe, gibt es keine andere Möglichkeit, diese Tabelle zu verwenden.

Ich werde eine Zusammenführung einmal pro Woche ausführen, die neue E-Mails einfügen wird. Ich bin mir nicht sicher, ob ich eine Zusammenführung durchführen soll, wenn sie in E-Mails eindeutig gruppiert ist. Ich kann nur einfügen und hoffentlich, wenn ein Datensatz dupliziert wird, würde es nicht einfügen und mit dem Rest fortfahren, oder?

+0

Eine einzelne Spalte Tabelle muss nicht indiziert werden. Wie wird der Index helfen? – sagi

+0

@sagi, vielleicht zu wissen, ob es existiert? –

+2

Um deine Frage zu beantworten ... Ja kannst du. Erstellen Sie die Spalte als PK, Clustered. Wenn Sie versuchen, ein Duplikat einzufügen, wird ein Fehler ausgegeben. Sie müssen das also behandeln. –

Antwort

0

Dies ist meist eine persönliche Entscheidung. Es gibt einige Leistungsverbesserungen für die Identitätsspalte als Clustered-Index-Schlüssel, wenn der Code eingefügt, aktualisiert oder gelöscht wird.

Ich würde die Identitätsspalte als den gruppierten Index erstellen und die E-Mail eine separate Spalte machen. Es ist ideal, wenn der Clustered-Index-Schlüssel ein ständig wachsender Wert ist.

Was passiert, wenn Sie dieselbe E-Mail zweimal eingeben? Sollten das zwei getrennte Zeilen sein oder sollte das einen Fehler verursachen? Dies sind Dinge, über die Sie beim Entwerfen dieser Tabelle nachdenken sollten.

Verwandte Themen