Optimale Konfiguration für MYSQL-PHP Projekt

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

  • Optimale Konfiguration für MYSQL-PHP Projekt

    Hallo liebe Forumsmitglieder.

    Bisher habe ich viel gelesen in Eurem Forum und bin immer über die
    Suchfunktion zum Ziel gekommen. Nun habe ich aber mal eine
    warscheinlich recht allgemeine Frage.

    Ich baue ein Kunden und Warenwirtschaftsprojekt auf. Dabei nutze ich PHP
    und MYSQL. Innerhalb dieses Projektes werden viele (unbestimmt) Kunden
    Ihre Daten verwalten können.

    Die Frage ist nun, macht es Sinn alle Daten der Kunden in eine
    Tabellensammlung (z.B. kunden, artikel, bestellung, rechnung, usw.) zu
    stecken und die Daten dann jeweils über eine Kunden ID zuzuordnen oder ist
    es besser jedem Kunden sein Paket an Tabellen zur Verfügung zu stellen?


    In einem Beitrag habe ich gelesen das es bei vielen Tabellen (worauf ja die
    2. Methode hinausginge) die Performens des Servers erheblich leidet. Komme
    ich bei der ersten Methode nicht recht schnell mit den Grenzen der einzelnen
    maximalen Tabellengrößen?


    Wo ist der Flaschenhals eher zu sehen

    Ich hoffe mich im Sinne der Regelln hier verständlich ausgedrückt zu haben.

  • #2
    Naja, wenn dann würdest du dem Kunden ja eine eigenen Datenbank zur Verfügung stellen (ein Satz Tabellen für jeden Kunden in einer Datenbank ist Unsinn). Es kommt hauptsächlich darauf an wieviel und was der Kunde verwaltet, grundsätzlich würde ich aber alle Kunden in einer Datenbank verwalten.
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

    Kommentar


    • #3
      Alle Kunden-Daten in eine Tabelle - sollte man dann irgendwann den Punkt erreichen, wo die Tabelle der Größe wegen zu schwächeln anfängt, kann man immer noch Clustern, dann aber mit Begrenzung und nicht linear mit der Zahl der User

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

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

      Kommentar


      • #4
        dann aber mit Begrenzung und nicht linear mit der Zahl der User
        Wie meinst du das?

        Kommentar


        • #5
          Original geschrieben von senfeuter
          Wie meinst du das?
          z.B. Tabellen von 0-9
          tabelle_0
          tabelle_1
          etc.
          und die Datensätze eines Users dann in tabelle_($user_id%10)

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

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

          Kommentar


          • #6
            Dann bin ich am Ende aber wieder beim "Mehrtabellensystem". Wenn auch mit
            jeweils mehreren Benutzern in einer Tabellensammlung. Aber eine erster
            Lösungsansatz ist das schon mal.

            Nur wo liegt die Grenze des machbaren bei der Zahl der Tabellen ?

            Ich muss das nur jetzt in der Starphase berücksichtigen.

            Die Benutzerverwaltung und globale Daten gibt es ohnehin nur einmal zentral
            in jeweiligen Tabellen.

            wenn dann würdest du dem Kunden ja eine eigenen Datenbank zur Verfügung stellen
            genau das kann ich eben zur Zeit (noch) nicht

            Ab einer gewissen Menge Kunden muss dann sicher eine neue
            DB dazukommen, aber bis dahin ist noch Zeit. Nur will ich auch
            dafür schon ein bischen Vorsorge treffen.
            Zuletzt geändert von senfeuter; 21.08.2007, 22:58.

            Kommentar


            • #7
              Original geschrieben von senfeuter
              Dann bin ich am Ende aber wieder beim "Mehrtabellensystem". Wenn auch mit
              jeweils mehreren Benutzern in einer Tabellensammlung.
              Ja, genau das ist Ziel ... eben nicht Tabellen linear mit den Benutzern anzulegen um den Server nicht damit zuzumüllen~

              Abgesehen davon verstehe ich gar nicht was du willst - zuerst getrennte Tabellen, jetzt schon getrennte Datenbanken ... warum nicht gleich physikalisch getrennte DB-Server, einen pro Kunde? *rolls*
              (sofern die DB jemals solch Ausmaße annehmen sollte, was ich ernsthaft zu bezweifeln wage)

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

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

              Kommentar


              • #8
                Ja ich weis es ist nicht üblich weiter als nötig in die Zukunft zu schauen.
                Das Jahr 2000 Problem und die Hysterie darum schon vergessen?

                Ich denke nur mal darüber nach, wie es eventuell in Zukunf werden könnte,
                um eine komplette Neuprogrammierung zu vermeiden. Entschuldigt bitte meinen
                Zukunftsoptimismus.
                (sofern die DB jemals solch Ausmaße annehmen sollte, was ich ernsthaft zu bezweifeln wage)
                Nur mal zum Vergleich (auch wenn der hinkt), beim Start der kleinen
                Tauschbörse die heute eBucht heist, hat bestimmt keiner über Datenbanklast
                nachgedacht

                Danke für die konstruktiven Ansätze, bin für weitere gute Ansätze auch in Zukunft
                dankbar. Nun bau ich mal weiter.

                Kommentar


                • #9
                  Eine "komplette Neuprogrammierung" wird auch in keinem Fall nötig sein~

                  Du kannst ja auch postgresql verwenden - da kann man bei Bedarf vom DBMS her aus clustern~
                  Und die neueren MySQL-Versionen bieten das Feature ja auch schon (sind halt nur nicht stable)

                  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