phpbar.de logo

Mailinglisten-Archive

Performanceauswirkungen aufgrund DB-Layout

Performanceauswirkungen aufgrund DB-Layout

Michael Bergbauer mysql-de_(at)_lists.bttr.org
Mon, 22 Apr 2002 09:24:58 +0200 (CEST)


On 21-Apr-2002 Markus Wolf wrote:
> Hallo,
> 
> ich bin gerade dabei ein relativ grosses Projekt zu erstellen (gross in
> Bezug auf Datenmenge und Traffic). Der Traffic beläuft sich auf ca. 1 GB am
> Tag. Das DB-Layout hat sich in einem Jahr sehr bewährt. Die Anwendung ist
> sehr schnell und zeigt bisher keinerlei Performanceprobleme.
> 
> Jetzt soll das ganze erweitert werden und auch mandantenfähig werden, dass
> hat zur Folge das das Layout der DB geändert werden muss, 

Hmm, kapier ich irgendwie nicht -- fuer mich wuerde das in der DB eigentlich
nur heissen, das ich evtl. ein "paar" (einige wirklich wenige, vielleicht 2-5)
neue Tabellen brauche, und an einigen anderen Stellen zusaetzliche Felder
einfuegen muss. Aber naja, ich kenn deine DB nicht.

> da stellen mir
> sich Fragen, auf die ich keine wirklich Antwort finden konnte. Vielleicht
> kann mir hier jemand etwas helfen:
> 
> 1. wie wirkt sich die Anzahl der Felder pro Tabelle auf die performance aus

Sie wirkt sich aus. Sorry, auf allgemeine Fragen gibts allgemeine Antworten.
Ueberleg mal logisch: mehr Felder bedeutet mehr Daten - jedesmal, wenn du auf
die Tabelle zugreifst musst du mehr Daten bewegen, das kostet dich Rechenzeit -
ganz egal, ob die Datensaetze von der Platte kommen oder aus dem Speicher. 

> 2. wie wirkt sich die Anzahl der Tabellen pro DB auf die Performance aus

In MySQL sind im Normalfall (Ausnahme InnoDB) die Tabellen Files. Je mehr Files
du hast, desto groesser ist das Verzeichnis, und desto mehr musst du potentiell
lesen, um an die Eintraege fuer das richtige File zu kommen. 

Wenn du nichts von der Platte lesen musst, weil deine Datensaetze schon im
Speicher sind, hast du da auch nen Performance-Verlust - die Menge der
Metadaten wird groesser, also dauern auch Speicherzugriffe laenger. 

Aber: ich denke nicht, das diese Einbussen signifikant sind - zumindest nicht
bei nem vernueftigen Datenbank-Design. Da kannst du wesentlich mehr damit
kaputt machen, als mit 5 zusaetzlichen Tabellen oder 20 zusaetzlichen
Datenfeldern. 



Michael

-- 
michael Bergbauer <michael_(at)_noname.franken.de>
Use your idle CPU cycles.
See http://www.distributed.net and win $ 1 000.
Visit our mud Geas at geas.franken.de Port 3333

---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive