Performance -> array vs. mysql_select

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

  • Performance -> array vs. mysql_select

    Mahlzeit, ich such mir hier noch den Wolf nach der Antwort meiner Frage:

    Nehmen wir zum Beispiel eine Warengruppenverwaltung eines Shops mit bis zu fünf Stufen. Wenn ich die stufenweise eingerückt darstellen will, muss ich für jede Warengruppe der 1. Stufe prüfen, ob es Unterwarengruppen gibt, da wieder usw. usw.
    Da kommen schnell bis zu 300-500 Abfragen zusammen. Daher jetzt die Frage, was ist schneller?

    1. Wenn ich wirklich 'geschachtelte' MySQL Abfragen nehme.

    2. Wenn ich im Vorwege die fünf Warengruppen Stufen in je ein Array schreibe und dann bei Bedarf abwander und die Elemente prüfe.

    Das Problem: Ich habe das mal mit ca. 400 Warengruppen online getestet. Beide Varianten brauchen etwa 60 Sekunden (ganz schön lange), obwohl ich schon diverses optimiert habe. Lokal ist die Array Variante schneller, aber ist das wirklich so???

  • #2
    guckst du hier
    Nested Sets
    das dürfte die Lösung deiner Probleme sein

    gruss
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Verdammte Kiste

      Irgendwie war das Nested Sets Modell mal der Ursprung meiner Überlegungen. Aber irgendwie ist mir das wohl im Laufe des Tippens immer mehr abhanden gekommen. Also ist die Struktur meiner Tabelle so ähnlich, aber eben nicht mehr genau so... Da muss ich wohl noch mal ran! Danke jedenfalls!

      Allerdings: die grundsätzliche Beantwortung meiner ursprünglichen Frage bezüglich Performance würde mich immer noch interessieren.

      Kommentar


      • #4
        ich denke, dass arrays grundsätzlich schneller sind als so komplexe mysql-abfragen, allerdings glaube ich, dass das bei deinem problem jacke wie hose ist, vor allem, wenn noch mehr artikel zur db dazukommen. iirgendwann kriegst du dann ein timeout. ich glaube, die nested sets sind die einzig wirklich praktikable lösung

        gruss
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Dann noch eine Frage

          OK. Danke!
          Aber mit dem Modell habe ich noch Probleme / Unklarheiten:

          Eine Sortierung nach einem Sortierungsfeld und das Nested Sets Modell schließen sich gegenseitig aus, oder??? Aber wie kann ich dann die genaue Position einer Warengruppe festlegen? Bislang habe ich ein Feld Sortierung mit einem char(3). Damit kann man dann die Warengruppen umsortieren, falls man nicht die Standardsortierung nach ABC haben will. (z.B. weil eine Kategorie Schnäppchen immer ganz oben stehen soll oder so)...

          So wie ich es verstehe, geht das Nested Sets Modell immer davon aus, dass etwas hinten angefügt wird. Oder habe ich da Tomaten auf den Augen?

          Kommentar


          • #6
            So wie ich es verstehe, geht das Nested Sets Modell immer davon aus, dass etwas hinten angefügt wird. Oder habe ich da Tomaten auf den Augen?
            ne, das stimmt nicht.

            Eine Sortierung nach einem Sortierungsfeld und das Nested Sets Modell schließen sich gegenseitig aus, oder???
            ne auch nicht

            Aber mit dem Modell habe ich noch Probleme / Unklarheiten:
            naja, bei der theorie hatte ich auch so meine probleme, geh die bespiele aus dem tutorial mal in aller ruhe stück für stück durch, irgendwann fällt dann der groschen.

            ich hab das prinzip zwar mittlerweile verstanden, bin aber grottenschlecht im erklären, darum kann ich dir wahrscheinlich nicht weiterhelfen.

            gruss
            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Original geschrieben von Kropff

              [B]ne, das stimmt nicht.
              Das mit den Tomaten?

              Also noch mal danke. Ich werde dann noch mal mein Glück versuchen. Ansonsten: baldiges Posting an dieser Stelle...

              Gruß
              Martin

              Kommentar


              • #8
                nur mal am rande..... irgendwo in dem TUT zu den nested sets steht auch drin, dass irgendwann der performance leidet, wenn zu viele daten enthalten sind. aber lies dir das TUT erst einmal durch....
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Das habe ich bereits gelesen, nur noch nicht ins Detail testen können. Ab welchen Datenmengen kann es denn Probleme geben? Auf der anderen Seite ist ein Shop mit zu vielen Warengruppen auch nicht gerade übersichtlich...

                  Eigentlich bin ich ja auch mit meiner Lösung zufrieden. Nur eben in der internen Darstellung, also dort wo ich den gesamten Baum zeigen muss (Warengruppenverwaltung, da ist es ein wenig lahm, weil jeder Datensatz so einige if´s oder select´s mit sich zieht.

                  Kommentar


                  • #10
                    ab wann es probleme gibt weiss ich nicht. das musst du mal testen...
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar

                    Lädt...
                    X