phpbar.de logo

Mailinglisten-Archive

Re: Zeilen VS. Tables
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Zeilen VS. Tables



Thomas Heller wrote:
> 
> Moin Moin!
> 
> Mal eine *again* Frage zur Performance von mysql! :)
> 
> Ich stehe vor der Frage entweder:
> 
> Eine Tabelle mit >5000 Zeilen oder mehrere Tabellen mit je <50 Zeilen ...
> 
> Meine Frage ist nun, wirkt sich das Erstellen von vielen TABLEs irgendwann
> negativ auf die Performance aus?
> 
> Ich schätze mal das die Performance irgendwann darunter leiden wird, wenn
> ich eine TABLE mit "sehr vielen" Zeilen habe. Über diese Tabelle läuft
> ca. alle 5 Min ein php3 - Skript welches nach 3 Kriterien Ergebnisse
> herausfiltert. (Alles INDEX Felder)
> 
> Hat mysql Grenzen bezüglich der Menge an TABLEs innerhalb einer DB?
> Ist es wirklich sinnvoll diese zu trennen? Ich habe bisher noch nicht
> getestet wie lange ein normaler SELECT in meiner bisherigen einen TABLE
> dauert, aber da sind bisher auch nur 25 Zeilen drin, aber das wird sich ab
> sofort fast stündlich um 10 steigern ...
> 
> Jemand nen Tip?
> 
> Ich schrecke irgendwie davor zurück irgendwann 1xxx TABLEs zu haben. :)
> 
> danke, mfg
> Thomas

Hallo Thomas

Bei Tabellen mit nur wenigen hundert Zeilen verwendet mysql meistens keine Indexe!
Ich selbst habe eine Tabelle mit ca. 200'000 Zeilen. 
Einfache SELECT's auf diese laufen in 0.05s ab (Pentium 166) :)

Wenn Du allerdings diese Tabelle(n) mit anderen JOIN'st, dann sind kleine Tabellen natuerlich viel schneller, da weniger "Zwischenergebnisse" untersucht werden muessen.
Das setzt allerdings voraus, dass nicht mehrere der kleinen Tabellen benutzt werden muessen, um das von Dir gewuenschte Ergebnis zu erhalten (MySQL kennt schliesslich noch keine UNION).

MySQL hat keine eigene Grenze, was die Anzahl von Tabellen innerhalb einer database angeht, aber dein OS hat eine maximal zulaessige Anzahl von Dateien in einem Verzeichnis.
Da je Tabelle 3 Dateien angelegt werden, hast Du also ein drittel der maximal zulaessigen Anzahl von Dateien als Obergrenze der Tabellen je database.

Meiner Meinung nach ist das Trennen von einer grossen Tabelle in mehrere kleine Tabellen nur dann sinnvoll, wenn man entweder an die momentane 2-4 GByte Grenze je Tabelle stoesst, oder wenn die einzelnen kleinen Tabellen oft in komplexen JOIN's
auftauchen, oder man Teile der Tabelle unterschiedlichen Benutzern mit unterschiedlichen Zugriffsrechten zugaenglich machen muss.

Tschau
Christian


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive