Welche Column als Primary Index?

G

gruber99

Mitglied
hallo,

brauche allgemeine hilfe bei datenbanken
und zwar wie entscheide ich welche column ich als index in einer Tabelle wählen soll?

der primary index muß ja nicht unique sein

bsp. ich habe eine tabelle mit den coulmns A,B,C,D,E (= Zahl),F
eindeutig wird eine row aber durch die column A,B,C,D
ist es in diesem fall sinnvoll alle columns A,B,C,D als primary index zu definieren ?
(die tabelle ist ziemlich groß - also um die 2 Millionen rows ...)

danke
hannes
 
hi

ein primärschlüssel setzt du auf eine eindeutige id. das heißt du hast in dieser spalte eindeutige namen/zahlen/bucstaben zum identifizieren einer zeile.

ein index solltest du auf die spalten setzen auf die viel gesucht wird mit where!

ein uniqu kannst du setzen wenn sich in der spalte nur eindeutige werte befinden.

mfg frank
 
hi danke für die schnelle antwort,

in meinem fall habe ich in dieser tabelle keine eindeutige id (da es sich um eine aggregation handelt)
sondern nur wie oben beschrieben columns A,B,C,D,E,F ...
 
dann führst du ein feld ein das eindeutig ist, z.b. über autoincrement. Man sollte immer eine eindeutige id in seiner tabelle haben, das bekommt dann den primary key. die anderen musst du entscheiden, anhand der Kardinalität ob es sich lohnt sie mit einem index zu versehen. oft sind dazu tests nötig.
 
ExRevel schrieb:
dann führst du ein feld ein das eindeutig ist, z.b. über autoincrement. Man sollte immer eine eindeutige id in seiner tabelle haben, das bekommt dann den primary key.
Ja und Nein: Eine eindeutige ID in einer Tabelle zu haben ist sinnvoll bzw. notwendig. Aber diese muß nicht eine eigene Spalte sein. Als Primary Key kann genauso gut eine Kombination aus mehreren Spalten dienen, die in dieser Kombination natürlich über die Tabelle eindeutig sein muß. Das scheint ja in o.g Fall bei A,B,C,D, gegeben zu sein.
Also Primary Key = A, B, C, D (wrd automatisch als unique gesetzt)
Indices müssen allerdings mit Vorsicht gewählt sein. Aber dazu wurde bereits genug gesagt.
 

Ähnliche Themen

CentOS 5.8 –SQL Abfrage– HTML wird generiert und daraus müssen mehrere Mails versendet werden

Prblem mit zeilenweises auslesen von Datei und schreiben nach mysql

verzeichniss suche funktioniert nicht

Aufgabe in C

suchen und ersetzen, Format erhalten

Zurück
Oben