Jörk: Mysql - eine große Tabelle oder viele kleine Tabellen

hi,

ich würde gerne wissen wie ich meine datenbank strukturieren soll.
ich habe 2.000.000 datensätze, soll ich das jetzt in eine große tabelle speichern oder soll ich dafür 1000 kleine tabellen erstellen.

problem wäre wenn ich das alles in eine grosse tabelle speichern würde, dann würde ich grosse bzw. grössere performance-einbußen haben.

wenn ich 1000 kleine tabellen erstelle würde, wäre es super, aber jetzt weiss ich nicht ob mysql damit zurecht kommt.

macht des was wenn in einer mysql-datenbank 1000 tabellen sind?

  1. Moin Jörk,
    Deine Frage ist nicht richtig formuliert:
    Was sind das für Daten, in welcher Struktur liegen diese vor.

    Einfach nur mal so eine Tabelle zu zerteilen macht keinen Sinn.
    Es macht Sinn ein entsprechendes Datenabankmodell zu entwickeln, welches weitesgehend Retundanzfrei ist und dem ER Modell entspricht.
    Wenn Du von all diesen Dingen gerade Bahnhof verstanden hast, dann sage dies, dann mache ich mich auf die Suche nach einem Tutorial für MySQL und ER

    TomIRL

    1. Retundanzfrei

      Na, da hat sich wohl jemand auf der Tastatur verirrt: Das heißt redundtanzfrei.

      SCNR ;)
        soenk.e

      1. Na, da hat sich wohl jemand auf der Tastatur verirrt: Das heißt redundtanzfrei.

        red und tanzfrei???  ;-)

        Grüesslie, James.

  2. ich würde gerne wissen wie ich meine datenbank strukturieren soll.

    So, wie Du am besten darauf zugreifen kannst. Der Witz an einer Datenbank ist auch, daß man sich nicht um die Details der Datenspeicherung kümmern muß. Wenn Du jetzt eine Tabelle nur der Größe wegen in mehrere aufteilst, führst Du das Ganze etwas ad absurdum.

    ich habe 2.000.000 datensätze, soll ich das jetzt in eine große tabelle speichern oder soll ich dafür 1000 kleine tabellen erstellen.

    Ich habe eine Tabelle mit aktuell 2.47 Millionen Einträgen und kann mich über Geschwindigkeitprobleme nicht beklagen.

    problem wäre wenn ich das alles in eine grosse tabelle speichern würde, dann würde ich grosse bzw. grössere performance-einbußen haben.

    Woher weißt Du das? Hast Du nachgemessen oder fürchtest Du Dich nur? Verwendest Du Indizes, sind es die richtigen, zu wenig oder gar zu viele? Welches der reichlich von MySQL angebotenen Datenbanksysteme verwendest Du? Welches Betriebssystem, welches Dateisystem, welche Hardware?

    wenn ich 1000 kleine tabellen erstelle würde, wäre es super, aber jetzt weiss ich nicht ob mysql damit zurecht kommt.

    MySQL speichert eine Datenbank in der Regel als ein Verzeichnis, die Tabellen stellen jeweils eine Datei in diesem Verzeichnis dar. So wie Du Dir Gedanken über eine große Tabelle machst, frage ich mich, wie Dein Server auf ein derartig monströses Verzeichnis reagiert. Anders ausgedrückt: Du könntest vom Regen in die Traufe kommen.

    Gruß,
      soenk.e

    1. Woher weißt Du das? Hast Du nachgemessen oder fürchtest Du Dich nur?

      Nachgemessen hab ich das nicht, eher hab ich schiss das es zu langsam wäre.

      aber wenn ihr sagt das es besser wäre eine größere tabelle zu erstellen, dann wird es wohl stimmen.

      MySQL speichert eine Datenbank in der Regel als ein Verzeichnis, die Tabellen stellen jeweils eine Datei in diesem Verzeichnis dar. So wie Du Dir Gedanken über eine große Tabelle machst, frage ich mich, wie Dein Server auf ein derartig monströses Verzeichnis reagiert. Anders ausgedrückt: Du könntest vom Regen in die Traufe kommen.

      ja, das stimmt das habe ich zwar bedacht, aber irgendwie nicht richtig. :-)

      von wahsaga:

      da ist - sofern die daten alle die gleiche _struktur_ haben, nicht wirklich sinnvoll. ausserdem, was machst du, wenn du unter -allen_ datensätzen eine suche durchführen willst - 1000 queries für 1000 tabellen absetzen? sicherlich noch wesentlich unperformatner!

      ja, das ist schon klar, aber unter den datensätzen wird keine suche gemacht, sonst hätte das mit dem aufteilen der tabelle schon beachtet.

      ok, ihr habt mich überzeugt.

      danke

    2. Hello Soenk.e,

      Ich habe eine Tabelle mit aktuell 2.47 Millionen Einträgen und kann mich über Geschwindigkeitprobleme nicht beklagen.

      Haben wir den Spammer endlich ertappt. Soso, 2.47 Millionen email-Adressen hast Du da wohl gehamstert? *umpf*

      Scherz beiseite, auf was für einer Hardware und mit welcher DB läuft das?

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      1. Ich habe eine Tabelle mit aktuell 2.47 Millionen Einträgen und kann mich über Geschwindigkeitprobleme nicht beklagen.

        Scherz beiseite, auf was für einer Hardware und mit welcher DB läuft das?

        Ein vollkommen unterforderter Athlon XP 1700 mit 256 MByte Hauptspeicher, Standard-MySQL 3.nochwas mit MyISAM-Tabellen. Das Ganze ist mein Protokoll für http://kino-fahrplan.de/, erstellt über http://bitbrook.de/software/mod_log_mysql/ (der dazu gehörende Apache 2 läuft ebenfalls auf dieser Maschine).

        Gruß,
          soenk.e

  3. hi,

    ich würde gerne wissen wie ich meine datenbank strukturieren soll.
    ich habe 2.000.000 datensätze, soll ich das jetzt in eine große tabelle speichern oder soll ich dafür 1000 kleine tabellen erstellen.

    problem wäre wenn ich das alles in eine grosse tabelle speichern würde, dann würde ich grosse bzw. grössere performance-einbußen haben.

    ich denke nicht. mysql "packt" auch solche datenmengen, nach allem was ich bisher darüber gehört, noch ganz gut.

    wenn ich 1000 kleine tabellen erstelle würde, wäre es super, aber jetzt weiss ich nicht ob mysql damit zurecht kommt.

    da ist - sofern die daten alle die gleiche _struktur_ haben, nicht wirklich sinnvoll. ausserdem, was machst du, wenn du unter -allen_ datensätzen eine suche durchführen willst - 1000 queries für 1000 tabellen absetzen? sicherlich noch wesentlich unperformatner!

    macht des was wenn in einer mysql-datenbank 1000 tabellen sind?

    wie gesagt, es ist nicht sinnvoll, und widerspricht auch dem gedanken hinter dem einsatz von datenbanken.

    wei tom schon sagte, lieber die datenstruktur nochmal gut durchdenken, redundanzen eliminieren, und eine normalisierung herstellen.

    gruss,
    wahsaga