Wie groß sollte eine mySQL Tabelle maximal sein?

Hallo,

wie gross darf denn eine mySQL Tabelle mit zurzeit 7 Spalten werden, damit man sie noch ohne Probleme durchsuchen kann?

Die Abfragen sind meist nur nach zwei oder drei Spalten

z.B. „SELECT from tabelle WHERE (LEFT(SpalteA,1) = ‚$letter‘ AND Typ=0 ORDER BY SpalteA ASC“

Danke

Daniel

Kleiner Nachtrag:
Keiner Nachtrag:

Die Datentypen der Spalten sind Strings mit einer Länge von 50 Byte oder INT…

Daniel

wie gross darf denn eine mySQL Tabelle mit zurzeit 7 Spalten
werden, damit man sie noch ohne Probleme durchsuchen kann?

Aus eigener Erfahrung würde ich nicht mehr als 20-30 Spalten pro Tabelle nehmen, sonst wird die Sache „unhandlich“. In Bezug auf Performnance können die Tabellen jedoch auch deutlich größer werden. Ich selbst kenne kein maximales Limit an Spalten pro Tabelle, es können also theoretisch auch 2000 Spalten sein. Um diese dann schnell durchsuchen zu können, sollte für jede relevante Spalte (also in der man suchen möchte) ein Index angelegt werden.

Üblicherweise halte ich meine Tabelle möglichst klein und lege dann lieber separate Tabellen an (z.B. Person, Adresse, Telefon). Auf diese Weise läßt sich auch die Normalisierung leichter durchführen, z.b. wenn eine Person mehrere Adressen und eine Adresse mehrere Telefonanschlüsse hat.

Marian

Hallo,

danke erst einmal für Deine Antwort, aber ich wollte eigentilch eher auf die Anzahl der Datensätze hinaus…

Sorry, wenn ich mich falsch ausgedrückt habe…

Daniel

Hallo,

danke erst einmal für Deine Antwort, aber ich wollte
eigentilch eher auf die Anzahl der Datensätze hinaus…

Die Antwort findest Du hier:

http://www.mysql.com/doc/T/a/Table_size.html

Marian

Hallo,

Danke für Deine Antwort, aber mich würde nich interessieren, wie gross soclhe Tabellen praktisch sein dürfen, damit nicht 5 Minuten gesucht werden muß bei einer query…

Bei Google habe ch dazu nämlich leider nichts gefunden…
Meine Tabelle wird niemals 4 Gigabyte erreichen, aber ich würde halt gerne wissen, ob eine Tabelle mit 7 Spalten und >2000 Zeilen noch schnell durchsuchbar ist, wenn es um ein Internetangebot geht…

Danke

Daniel

Ich kenne die Implementierung von mySQL nicht, aber deine Beispielanfrage mit LEFT() dürfte durch einen Index leicht bearbeitet werden können.

Die Anzahl Spalten spielt keine Rolle, die Anzahl Datensätze auch nicht solange der Index beim Zugriff benutzt werden kann, also würde ich sagen ein paar Millionen Datensätze sind möglich… immer vorausgesetzt mySQL kann deine Abfrage mit Hilfe eines Indizes beantworten, ein paar Millionen Datensätze sequentiell zu scannen ist natürlich tierisch lahm.

Grüße
Bruno

Danke für Deine Antwort, aber mich würde nich interessieren,
wie gross soclhe Tabellen praktisch sein dürfen, damit
nicht 5 Minuten gesucht werden muß bei einer query…

das ist weniger eine Frage der Größe, sondern ob Du einen index auf die Suchfelder definiert hast.

Mit Indexfeldern geht die Suche immer Superschnell, ganz gleich wie viele Daten es sind.

Marian

Bei Google habe ch dazu nämlich leider nichts gefunden…
Meine Tabelle wird niemals 4 Gigabyte erreichen, aber ich
würde halt gerne wissen, ob eine Tabelle mit 7 Spalten und
>2000 Zeilen noch schnell durchsuchbar ist, wenn es um ein
Internetangebot geht…

Also im vierstelligen Bereich brauchst du dir überhaupt keine Sorgen machen. Ganz so, dass es mit Index immer schnell ist, ist es leider nicht (hängt von vielen Faktoren wie der Suchabfrage und der Verteilung der Werte die indiziert werden ab), aber wie gesagt, in deiner Größenordnung, kein Problem.

Grüße, Robert

hi!

Bei Google habe ch dazu nämlich leider nichts gefunden…
Meine Tabelle wird niemals 4 Gigabyte erreichen, aber ich
würde halt gerne wissen, ob eine Tabelle mit 7 Spalten und
>2000 Zeilen noch schnell durchsuchbar ist, wenn es um ein
Internetangebot geht…

kenne zwar mysql nur vom hörensagen, jedoch dürfen 2000 sätze absolut kein problem sein … bei 2000 mio. sätze schon eher … mit einem geschickten index und einer sich auf diesen index beziehenden abfrage darfst auch nicht merken, ob sich 2 oder 2000 oder 200 000 sätze in der tabelle befinden …

grüße,
tomh