[PHP5] DB Abstraktion zum sparen ähnlicher SQL Abfragen

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

  • [PHP5] DB Abstraktion zum sparen ähnlicher SQL Abfragen

    Hallöchen Community,
    ich will mich demnächst an ein etwas größeres OpenSource Projekt ran trauen, was absolut modular aufgebeut werden soll.
    Allerdings gibt es da eine Sache die mich stört und die ich gerne lösen würde.

    Und zwar wenn ein Modul eine SQL Abrage macht, z.B. aus einer Tabelle eines Forums alle User ausliest mit den typischen Feldern, Vorname, Nachname ..., nun hat dieses Modul allerdings ein paar Untermodule, die z.B. die Tabelle User um einige Spalten erweitert hat z.B. YouTube Name ..., nun müsste dieses Untermodul noch einmal eine Abfrage starten um diese Felder auszulesen.

    Nun meine Idee, dass man der Abstraktionsschicht z.B. ein Array mit Feldern übergibt welche ausgelesen werden. Dann ein aufruf wo alle Untermodule durchlaufen werden und diese der abfrage weitere Felder hinzufügen können.

    Der Sinn ist eigentlich, dass man Geschwindigkeit und Ressourcen spart. Die Frage ist nur ob die zusätzliche Abstraktionsklasse, das durchlaufen der Untermodule und alles was dazu gehört wirklich Ressourcen schont und ein bisschen die Geschwindigkeit optimiert.


    Also ich hoffe ihr habt meinen Plan ein wenig verstanden und würd mich freuen wenn die Profis unter euch mir da ein paar Tipps oder Denkanstöße geben können. Vielleicht gibt es so etwas ja schon oder ein OpenSource Projekt das es so in etwa regelt, dann wäre ich für den Link dankbar.

    Bis dahin
    MfG
    Primusio
    2
    Ja die Geschwindigkeit sollte dadurch erhöht werden können.
    0%
    0
    Der Unterschied dürfte gleich null sein.
    0%
    1
    Nein am Ende braucht solch eine Klasse mehr Rechenzeit als eine neue SQL Abfrage.
    0%
    1

  • #2
    wenn die beschriebene situation oft genug vorkommt, kann es passieren, dass man tatsächlich etwas zeit gewinnt.

    grundsätzlich würde ich bei optimierungsproblemen zu zwei vorgehen raten:

    1. geeignete tests durchführen. das ist zweifellos aussagekräftiger als jede fremdmeinung.

    2. dort optimieren, wo es eng wird. wenn die sql anfragen ohnehin schnell abgearbeitet werden, bringt dir eine millisekunde nicht so viel, wie du vielleicht möchtest. deswegen lieber mit einem profiler tatsächliche flaschenhälse finden und dann konkrete probleme beheben. "drauflosoptimieren" ist meistens eine zeitverschwendung (s. diskussionen à la hochkommata vs. anführungsstriche, regexp vs. string-fkt., for vs. foreach, u.v.m.)

    Kommentar


    • #3
      Da hast du schon recht, nur muss man bei verschiedenen Dinge sich schon vorher überlegen, wie es in einem Projekt geregelt werden soll, um nicht hinterher wenn alles fertig ist, man es testet und dann doch wieder alles kippt. Und deswegen dacht ich mir, MEinungen einholen schadet ja auch nichts.

      Und natürlich ist eine Millisekunde nicht viel und die Streits um for vs. foreach sind wirklich immer sehr spektakulär, doch wenn man versucht an möglichst vielen Stellen, vor allem bei größeren Projekten, möglichst viel zu beachten, kann man schon mehr sparen als nur eine Millisekunde.

      Kommentar


      • #4
        Wir achte nur auf Performance, deshalb schreibe ich meinen Code ab jetzt ohne Funktionen und Klassen alles ganz schlicht prozedural untereinander.

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

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

        Kommentar


        • #5
          Original geschrieben von ghostgambler
          Wir achte nur auf Performance, deshalb schreibe ich meinen Code ab jetzt ohne Funktionen und Klassen alles ganz schlicht prozedural untereinander.
          Ich hoffe du meinst das nicht ernst. Wenn doch ist es haltlos.
          Wenn ihr so auf performance achtet und du deswegen sogar
          funktionen weglässt, dann hast du die falsche optimierungsmethode
          gewählt. Wie wärs mit einer anderen sprache?


          greets
          (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

          Kommentar


          • #6
            Original geschrieben von closure
            Ich hoffe du meinst das nicht ernst.
            Nein, das triefte vor Sarkasmus oO

            Es ist schlichtweg so, dass die meisten Optimierungsmethoden den Code dermaßen unleserlich hinterlassen, dass man ihn bei späteren Erweiterungen schneller von Grund auf neu schreiben kann, anstatt das alte zu erweitern.
            OOP ist auch verhältnismäßig langsam ... trotzdem werde ich garantiert nicht darauf verzichten, nur um den Code schneller zu machen ... was bringt mir schneller Code, wenn die Wartungsarbeiten 3 Mal so lange dauern wie an vernünftig programmiertem Code? x_X
            Zuletzt geändert von ghostgambler; 20.03.2007, 09:40.

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

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

            Kommentar


            • #7
              Oh,
              alles klar. Ich konnts ehrlich gesagt nicht glauben, aber keine
              smileys und dann noch zu früher stunde, da entgeht mir schon
              mal einiges was so zwischen den zeilen steht.

              greets
              (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

              Kommentar


              • #8
                Original geschrieben von closure
                Oh,
                alles klar. Ich konnts ehrlich gesagt nicht glauben, aber keine
                smileys und dann noch zu früher stunde, da entgeht mir schon
                mal einiges was so zwischen den zeilen steht.
                Wenn ich keine Smileys mache ist es meistens Sarkasmus ^^

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

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

                Kommentar


                • #9
                  Ich wollte eigentlich keine Grundsatzdiskussion zum Thema Optimierung antreten. Ich wollte eigentlich nur eure Meinung zu dem von mir vorgeschlagenen Lösungsweg.

                  Das man einen Kompromiss zwischen Geschwindigkeit und Wartbarkeit finden muss ist denke ich keine Frage aber trotzdem sollte man die Geschwindigkeit ja nicht völlig ausser acht lassen.

                  Aber naja Meinungen zum eigentllichen Thema wären trotzdem noch dankend angenommen

                  Kommentar

                  Lädt...
                  X