PRIMARY KEY, UNIQUE, INDEX - Unterschiede [fertig]

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
shwepsi
Mitglied
Beiträge: 1697
Registriert: 02.06.2003 14:37
Wohnort: NRW - immer dem Monitorleuchten folgen...
Kontaktdaten:

PRIMARY KEY, UNIQUE, INDEX - Unterschiede [fertig]

Beitrag von shwepsi »

Hallo,
wie im Titel bereits angegeben habe ich eine Frage zu MySQL. Ich habe auf http://dev.mysql.com mal gesucht, finde aber nicht wirklich was passendes.

Primary key ist ein eindeutiger Wert an dem die Zeile identifiziert wird, normalerweise eine Nummer, richtig?

Unique? ist das nicht das gleiche wie ein Primary Key? Wenn ja wo ist der Unterschied?

Index: Hier verstehe ich leider nur noch Bahnhof...

Wäre jemand so freundlich mich zu berichtigen und den Rest zu erklären?
Zuletzt geändert von shwepsi am 13.03.2005 21:25, insgesamt 3-mal geändert.
Die Weisheit verfolgte mich sekundenlang...
Aber sie überholte mich und war fortan nicht mehr gesehen !!!
Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Leuchte »

Bei Primary Key darf der Wert nicht NULL sein, muss also vorkommen. Unique hingegen kann auch NOT NULL sein
shwepsi
Mitglied
Beiträge: 1697
Registriert: 02.06.2003 14:37
Wohnort: NRW - immer dem Monitorleuchten folgen...
Kontaktdaten:

Beitrag von shwepsi »

Leuchte hat geschrieben:Bei Primary Key darf der Wert nicht NULL sein, muss also vorkommen. Unique hingegen kann auch NOT NULL sein
nun bleibt Index übrig, was ist Sinn und Zweck dieses Indizes? phpBB macht ja regen Gebrauch davon...

@Leuchte: Danke
Die Weisheit verfolgte mich sekundenlang...
Aber sie überholte mich und war fortan nicht mehr gesehen !!!
Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Leuchte »

Vergleich den Index einer DB mit dem Inhaltsverzeichnis eines Buches. Wenn du im Buch eine Stelle suchst, ist es mehr Arbeit das komplette Buch nach dieser Stelle zu durchsuchen, als im Glossar oder Inhaltsverzeichnis danach zu suchen. Stell dir vor, deine DB hat 80333 Einträge und du suchst alles zum Eintrag 60338, so muss die DB nicht von Anfang an alle Einträge durchsuchen, sondern sucht den passenden Index zu diesem Eintrag. Verstanden?
Ich bin mir sicher, dazu findest du auch was bei google.
shwepsi
Mitglied
Beiträge: 1697
Registriert: 02.06.2003 14:37
Wohnort: NRW - immer dem Monitorleuchten folgen...
Kontaktdaten:

Beitrag von shwepsi »

Leuchte hat geschrieben:Vergleich den Index einer DB mit dem Inhaltsverzeichnis eines Buches. Wenn du im Buch eine Stelle suchst, ist es mehr Arbeit das komplette Buch nach dieser Stelle zu durchsuchen, als im Glossar oder Inhaltsverzeichnis danach zu suchen. Stell dir vor, deine DB hat 80333 Einträge und du suchst alles zum Eintrag 60338, so muss die DB nicht von Anfang an alle Einträge durchsuchen, sondern sucht den passenden Index zu diesem Eintrag. Verstanden?
Ich bin mir sicher, dazu findest du auch was bei google.
hmm ... aber Index darf aber auch mehrfach den gleichen Wert haben...

ist das in etwa wie GROUP BY ? alle Beiträge werden nach einem bestimmten Wert sortiert und Gruppiert, und diese so entstandenen Gruppen kann man getrennt sortieren?
Die Weisheit verfolgte mich sekundenlang...
Aber sie überholte mich und war fortan nicht mehr gesehen !!!
shwepsi
Mitglied
Beiträge: 1697
Registriert: 02.06.2003 14:37
Wohnort: NRW - immer dem Monitorleuchten folgen...
Kontaktdaten:

Beitrag von shwepsi »

Ein INDEX ist meistens eine Spalte, nach der besonders häufig gesucht wird. Die Einträge in der Spalte werden als HASH Index gespeichert. Damit beschleunigt sich die Suche erheblich. Insbesondere bei Verknüpfungen von Tabellen wird MySQL dadurch erheblich schneller.
ok, damit hat sich das auch geklärt
Die Weisheit verfolgte mich sekundenlang...
Aber sie überholte mich und war fortan nicht mehr gesehen !!!
Antworten

Zurück zu „Coding & Technik“