mySQL indexe --> datenbank_Größe
carsten schlichting
- datenbank
hallo
wollte fragen, ob sich jemand gut mit Datenbanken auskennt und mich evntuell berichtigen könnte?
Und zwar möchte ich einige Tabellen für eine suchfunktion für auch unheimlich viele datensätze in den tabellen geignet machen. Index und so helfen dabei ja. jetzt wollte ich genauer wissen wie dies in der datenbank funktioniert. meinem Verständnis nach müßte die datenbank bei jedem weiteren index um mindestens 2 spalten im Hintergrung erweitert werden; also größer werden, weil informationen doppelt geschrieben werden müssen--stimmt das?
angenommen man hätte eine tabelle mit 2 Spalten, würde die daten bank ja theoretisch vier spalten anlegen müssen- oder?
also so ungfähr:
spalte 1( mit index: dass heißt sortiert nach einer alphabetischen reihenfolge)------spalte 2
und:
spalte 2( mit index: dass heißt sortiert nach einer alphabetischen reihenfolge)------spalte 1
sehe ich das richtig?
angenommen ich habe eine tabelle mit user_ID, vorname, nachname, geburtstag, email
und ich wollte auch die spalten nachname, geburtstag und e-mail suchbar machen, müßten diese Spalten auch nach einem index sortiert werden. Füge ich die nachträglich zu einer tabelle hinzu, muß die Tasbelle optimiert werden und größergeschrieben werden???
--------------------------------------------------
Angenommen ich möchte user_id mit einem primärschlüssel ausstatten.würde dann einfach nur darauf geachtet werden, das jede user-id nur einzeln vorkommt und alles schön sortiert wird, oder schreibt die datenbank zusätzlich zu der user_id eine interne nummerierung mit, die eventuell nicht der reihenfolge der user_ids entspricht, so dass man noch zusätzlich ein index zu dieser spalte hinzufügen muß? aber man kann in MySQL ja nur unter einer Warnung primärschlüssel oder indexe oder uniques zusammen zuordnen--von daher schließt der primärschlüssel wohl unique und index mit ein --oder?
viel grüße von mir carsten
Hallo Carsten,
Und zwar möchte ich einige Tabellen für eine suchfunktion für auch unheimlich viele datensätze in den tabellen geignet machen. Index und so helfen dabei ja. jetzt wollte ich genauer wissen wie dies in der datenbank funktioniert. meinem Verständnis nach müßte die datenbank bei jedem weiteren index um mindestens 2 spalten im Hintergrung erweitert werden;
nein, warum zwei? Der Einfachheit halber kannst Du Dir dies zwar als "Spalte" vorstellen. Vielleicht schaust Du Dir in Wikipedia den Artikel B-Tree an :-)
angenommen man hätte eine tabelle mit 2 Spalten, würde die daten bank ja theoretisch vier spalten anlegen müssen- oder?
also so ungfähr:
spalte 1( mit index: dass heißt sortiert nach einer alphabetischen reihenfolge)------spalte 2
ungefähr, nur nicht alphabetisch, sondern dem Datentyp entsprechend.
angenommen ich habe eine tabelle mit user_ID, vorname, nachname, geburtstag, email
und ich wollte auch die spalten nachname, geburtstag und e-mail suchbar machen, müßten diese Spalten auch nach einem index sortiert werden. Füge ich die nachträglich zu einer tabelle hinzu, muß die Tasbelle optimiert werden und größergeschrieben werden???
Lass das das Datenbankmanagementsystem erledigen. ALTER TABLE hilft Dir dabei. Bitte denke daran: Nicht jede Spalte benötigt einen Index. Indexe beschleunigen zwar Sortieren und Suchen, machen jedoch Einfügen, Ändern und Löschen langsamer, da der Index aktualisiert werden muss.
Angenommen ich möchte user_id mit einem primärschlüssel ausstatten. aber man kann in MySQL ja nur unter einer Warnung primärschlüssel oder indexe oder uniques zusammen zuordnen--von daher schließt der primärschlüssel wohl unique und index mit ein --oder?
Sorry, ich verstehe nur Bahnhof. Ja, eine Primärschlüsselspalte verfügt über einen Index, über einen eindeutigen Index, zudem sind in der Primärschlüsselspalte NULL-Werte nicht erlaubt. Ein Lektüretipp zu Schlüsseln.
Lies das MySQL-Handbuch. Es lohnt sich. Ich habe es Dir nicht umsonst empfohlen.
Freundliche Grüße
Vinzenz
also danke erstmal
Lass das das Datenbankmanagementsystem erledigen. ALTER TABLE hilft Dir dabei. Bitte denke daran: Nicht jede Spalte benötigt einen Index. Indexe beschleunigen zwar Sortieren und Suchen, machen jedoch Einfügen, Ändern und Löschen langsamer, da der Index aktualisiert werden muss.
ich habe gedacht, dass ich auf das Löschen und Ändern verzichte, sondern, dass immer neue datensätze angelegt werden, die vielleicht auch in eine extra_tabelle_neu angelegt werden können - dann gibt es eben noch ein 2. attribut im Primärschlüssel, das die Versions-nummer speichert. so muß ich nicht immer die ganze datenbank vom Internet herunterladen, sondern nur ein update.
außerdem habe ich auch noch einen sehr guten Link gefunden:
http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/index.htm
vielen dank und grüße
carsten