Eine Index.php - Datei

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

  • Eine Index.php - Datei

    Hallo,

    ich habe eine Website entworfen. Diese Website bezieht die Informationen die angezeigt werden aus einer MySQL Datenbank.

    Man kann diese Website daher für verschiedene Kunden nutzen. Jeder der Kunden ruft die gleiche index.php Datei auf. Und je nach Kunde (z.B. $_GET["kundennummer"]) wird ein anderer Inhalt angezeigt.

    Kann das bei ein großen Anzahl an Kunden zu Problemen führen?

    Danke für eure Informationen und Anregungen.

    Gruß

  • #2
    Falls du damit Fragen willst, ob dein DBMS eine "große" Anzahl an Kunden packt: Ja. Vermutlich wirst du eine Vorstellung von "groß" haben, die für eine Datenbank immer noch ein Witz ist. Vorraussetzung ist natürlich, dass deine Datenstruktur ordentlich normalisiert ist und du anständige Indizes gesetzt hast.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Ok, das klingt schonmal gut, danke.
      Aber könntest du mir vielleicht das mit den Indizes etwas besser erklären?

      Kommentar


      • #4
        Was genau hast du nicht verstanden auf der verlinkten Seite?
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Kommentar


        • #5
          This means that if you are constantly updating, inserting and removing entries in your table this could have a negative impact on performance.
          Meine Tabellen sind ordentlich normalisiert. Allerdings habe ich keine genaue Vorstellung was mit Indizes gemeint ist.

          Die Tabellen werden auch ständig geändert,
          was ja, laut dem Zitat, dann nicht hilfreich ist. Es klang aber in deiner ersten Antwort nach einer unverzichtbaren Maßnahme.

          Daher wollte ich dich bitten wir das Prinzip etwas genauer zu erklären.

          Kommentar


          • #6
            Zitat von ComicKopf Beitrag anzeigen
            Allerdings habe ich keine genaue Vorstellung was mit Indizes gemeint ist.
            http://de.wikipedia.org/wiki/Datenbankindex

            Die Tabellen werden auch ständig geändert, was ja, laut dem Zitat, dann nicht hilfreich ist. Es klang aber in deiner ersten Antwort nach einer unverzichtbaren Maßnahme.
            Wenn du zwei Dutzend Mal in der Minute neue Daten schreibst oder im Index enthaltene Daten veränderst, aber nur ein mal am Tag Daten ausliest - dann ist das eine deutlich ungünstige Verteilung. Da würdest du vielleicht lieber auf den Index verzichten, und in Kauf nehmen, dass das sortierte/mit Bedingungen einschränkende Auslesen länger dauert.

            Aber im Normalfall findet Auslesen deutlich häufiger statt als Einfügen/Ändern, und dann willst du natürlich ersteres möglichst performant haben. Und dazu vergibst du geeignete Indizes.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              This means that if you are constantly updating, inserting and removing entries in your table this could have a negative impact on performance.
              Das bedeutet, dass durch den Umstand, dass das DBMS einen Index vorhält und diesen natürlich auch pflegen muss, es unter Umständen dazu kommen kann, dass eine Indizierte Tabelle langsamer ist, als eine nicht indizierte. Das ist allerdings nur in zwei Szenarien der Fall:
              1.) Du hast deine Tabelle falsch indiziert. Falsch könnte zum Beispiel bedeuten in vorauseilendem Eifer einfach alles, oder Felder die gar nicht indiziert werden müssen.

              2.) Deine Tabelle ist noch klein. Dadurch dauert das Auslesen augenscheinlich genau so lange, das aktualisieren, einfügen und löschen jedoch etwas länger. Aber zum einen rede ich hier nun von Sekundenbruchteilen, die wahrscheinlich gar nicht mehr ohne weiteres messbar sind und zum andern selbst wenn, ist dieser "Gewinn" auch mit steigender Anzahl an Datensätzen schnell weg.

              Zitat von ComicKopf Beitrag anzeigen
              Meine Tabellen sind ordentlich normalisiert. Allerdings habe ich keine genaue Vorstellung was mit Indizes gemeint ist.
              Ein Idex ist eine eigenschaft, die du einer Spalte zuweist. Damit weißt du das DBMS an, sozusagen ein "Inhaltsverzeichnis" für diese Spalte zu führen. Wenn du nun ein SELECT-Statement mit eine WHERE-Klausel auf diese Spalte abschickst, muss das DBMS nicht in der Spalte selbst nachsehen, sondern kann im Inhaltsverzeichnis nachschlagen und somit Zeit gewinnen.

              Zitat von ComicKopf Beitrag anzeigen
              Die Tabellen werden auch ständig geändert,
              was ja, laut dem Zitat, dann nicht hilfreich ist. Es klang aber in deiner ersten Antwort nach einer unverzichtbaren Maßnahme.
              Ich hoffe doch, dass sich die Daten ändern, und nicht die Tabellen. Denn dann hast du definitiv nicht ordentlich normalisiert Unerlässlich kann man so direkt nicht sagen (es geht auch ohne), aber es ist guter Stil, Vorrausschauend und sauer! Was das Zitat angeht, das habe ich ja oben erläutert.
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Kommentar


              • #8
                Ja natürlich meinte ich die Daten Sorry!

                Ich habe mich jetzt etwas weiter über Indizes informiert. Ich glaube ich habe das Grundprinzip jetzt verstanden und ja, ich denke das wäre sinnvoll für mich.

                Wird denn der Index immer automatisch mitgeändert beim Eintragen bzw Updaten und muss man das selber tun, nachdem ich ihn einmal erstellt habe?

                Muss man dann in einer Selectabfrage explizit den Index ansprechen oder erkennt Mysql das auch direkt?


                Und eine Sache zusätzlich noch: Eine *.php Datei kann also an sich selber nicht überlastet werden? Sondern nur die Datenbank bzw die Server die dadurch angesprochen werden?

                Danke für eure Hilfen!

                Kommentar


                • #9
                  Ich habe mich jetzt etwas weiter über Indizes informiert.
                  ..........
                  Wird denn der Index immer automatisch mitgeändert
                  Was denn jetzt?
                  Informiert, aber die Information nicht registriert?

                  Muss man dann in einer Selectabfrage explizit den Index ansprechen oder erkennt Mysql das auch direkt?
                  Das mit dem "informieren" hat wirklich noch nicht so richtig hingehauen....
                  Wie wäre es mit noch einer Runde "informieren"...

                  Und eine Sache zusätzlich noch: Eine *.php Datei kann also an sich selber nicht überlastet werden? Sondern nur die Datenbank bzw die Server die dadurch angesprochen werden?
                  Richtig!
                  Ein einzelner Scriptdurchlauf kann zuviel Speicher oder Zeit brauchen, wird dann aber (meist) vom Webserver getötet.
                  Wir werden alle sterben

                  Kommentar

                  Lädt...
                  X