MySQL Perfomance steigern durch Tabellen-Splitting?

fi**en32

Lieutenant
Registriert
Mai 2007
Beiträge
968
hiho

ich hab da mal ne frage, steigt die performance einer tabelle, wenn sie weniger spalten hat?

einfaches beispiel:

steigt die performance der einzelnen tabelle wenn ich aus

tabelle = users
ID
name
pass
mail
rechte
language


zwei tabellen mache und per id verknuepfe

tabelle = users
ID
name
pass

tabelle(2) = users_infos
users_ID
mail
rechte
language


die frage ist ob die kleinere tabelle users nu mehr performance hat als die alte große?
wenn die user_infos abgefragt werden, dann natuerlich nicht, mir gehts nur um das benutzen der users. also ohne die performance der users_info
 
Das hängt stark davon ab, wie die Daten intern organisiert sind, deswegen kann ich dir das nicht 100%ig für MySQL sagen. (Welche Engine? MyISAM, InnoDB, ....?)

Sollte die Daten zeilenweise in Blöcken organisiert sein, bringt dir das mehr Geschwindigkeit wenn für eine Anfrage die komplette Tabelle gelesen werden muss. Z.B. bei einer Abfrage auf eine nicht indizierte Spalte.

Wenn du die wichtigen Spalten über die gefiltert wird mit entsprechenden Indizes versiehst, wird es so gut wie keinen Unterschied machen. Evtl. noch minimal in der größe der Indizes, das hängt aber stark von deren Struktur ab.

LG Ben
 
Ich hab dafür nun keine Belege, aber ich würde darauf tippen, dass es nicht schneller wird. Es dürfte für jede moderne Datenbank kein Problem sein direkt zum richtigen Datensatz zu springen und da dann die Zeile auszulesen.

Ich würde die Tabellen nur teilen, wenn du Speicherplatz sparen möchtest. NULL-Werte bei Usern, die keine entsprechenden Informationen haben, können nämlich trotzdem den für den jeweiligen Datentyp reservierten Speicher einnehmen. Das hängt aber stark von DBMS und Engine ab. Ich weiß nicht, wie das bei MySQL mit MyISAM und InnoDB aussieht.
 
Es empfielt sich immer mit 3 Normalform zu arbeiten. Das kannst du bei WIKI nachschlagen.

Ist es die Frage des Redundanzes oder generelle Aufsplittung?

Du musst wissen, je mehr joins du hast, desto mehr rechenpower wird es benötigt. oder so ähnlich. Auf jeden fall epfehle ich keine Abfragen die mehr als 20 Joins hat.
 
Zurück
Oben