MySQL Effizienzfrage: Mehrere kleine Tabellen oder eine große?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MySQL Effizienzfrage: Mehrere kleine Tabellen oder eine große?

    Hallöchen,

    ich soll ein neues Projekt entwickeln, das eine Statistik über die Nutzung der anderen Projekte meines Arbeitgebers erstellt. Die statistischen Daten sollen in einer eigenen MySQL-Datenbank verwaltet werden.

    Die derzeitige Datenbankplanung sieht so aus, dass für jedes bestehende Projekt meines Arbeitgebers eine eigene Datenbanktabelle angelegt wird, in der die jeweiligen statistischen Daten gespeichert werden und in einer weiteren Tabelle festgehalten wird, welche Tabelle zu welchem Projekt gehört.

    Ich persönlich würde aber bloß eine einzige Tabelle für alle statistischen Daten und eine weitere für alle zu verwaltenden Projekte anlegen und dann über einen Fremdschlüssel die Zuordnung der statistischen Daten zum jeweiligen Projekt vornehmen.

    Bevor ich meinem Projektleiter jetzt aber etwas Blödes vorschlage, wollte ich mal die Datenbankprofis fragen, ob es da einen Effizientunterschied gibt (natürlich ausgehend von korrekt angelegten Indizes etc.) zwischen einer großen Tabelle, wie ich es machen würde, oder der bisherigen Planung mit mehreren kleineren Tabellen und ob die Umsetzung Vorteile gegenüber der anderen hat.
    MfG Subsurf

  • #2
    Hallo,

    Zitat von Subsurf Beitrag anzeigen
    Ich persönlich würde aber bloß eine einzige Tabelle für alle statistischen Daten und eine weitere für alle zu verwaltenden Projekte anlegen und dann über einen Fremdschlüssel die Zuordnung der statistischen Daten zum jeweiligen Projekt vornehmen.
    das klingt absolut sinnvoll. Mehrere kleine Tabellen dagegen wären sinnlos, unsauber und eine schlecht skalierbare Lösung.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Zitat von AmicaNoctis Beitrag anzeigen
      das klingt absolut sinnvoll. Mehrere kleine Tabellen dagegen wären sinnlos, unsauber und eine schlecht skalierbare Lösung.
      Danke für die Antwort, genau das waren auch meine Überlegungen
      MfG Subsurf

      Kommentar


      • #4
        So pauschal ist die Antwort von AmicaNoctis nicht richtig. Es hängt stark davon ab, was „groß“ und was „klein“ ist. Das Zerteilen in viele Tabellen, ist auch unter dem Wort Sharding bekannt und bei MySQL Gang und Gebe, siehe z. B.
        Is your MySQL Application having Busy IO by Oracle Measures ? - MySQL Performance Blog
        Dafür muss die Tabelle aber entsprechend groß sein (mehrere GB). Bei Statistik-Tabellen kann man aber schnell derartige Größen erreichen.

        Ebenso interessant zu dem Thema ist zum Beispiel folgender Blog-Eintrag:
        Why you don't want to shard - MySQL Performance Blog

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar

        Lädt...
        X