Dynamisch aus der DB lesen?

Includes sind zeitlich für Menschen kaum spürbar. Wenn etwas dauert, dann die Zusammenarbeit mit Datenbanken oder Dateien. Um das herauszufinden kannst du ja eine kleine Zeitmessung in deine Seite einbauen. Einfach am Anfang und am Ende die Zeit ermitteln und dann kriegste das Ergebnis via Differenz der Teilergebnisse. Alternativ bietet Firefox eine Erweiterung namens Fasterfox, dass die Ladezeit anzeigt.

Ob man alles dynamisch machen muss, ist relativ. Zumal du dann auch einen größeren Aufwand hast. Das Projekt muss es dann schon rechtfertigen bzw du weißt, dass du eine Funktion oder Klasse öfters mal brauchst.
 
Nun erstmal danke für die Beiträge!

Zu den Includes:
Ich include in meiner Datei "main.php" eine in einem anderen Ordner befindliche "global.php" in der wiederum 5 Klassen und eine "functions.php" includet werden.
Und da ich mir die Ladezeit auf der "main.php" anzeigen lasse, fiel mir auf das die sich so um 0,03 Sekunden bewegt. Allerdings führ ich ausser den includes nicht aus!
An den 0,03 Sekunden, bei denen man jetzt natürlich sagen kann: "Das ist verdammt schnell", stör ich mich trotzdem weil ich z.B. die Ladezeiten beim phpBB3 gesehen habe und dort das gesammte Forenscript nur 0,03-0,06 Sekunden lädt und das bei mir schon allein die Include-Ladezeiten sind. Die eingebunden Dateien sind auch nicht groß... Könnte es damit zusammenhängen, dass der code der Dateien vielleciht nicht so gut ist und es deshalb länger lädt?
Ich geb euch Recht include-Ladezeiten sind minimalst, aber an dem phpBB3-Beispiel sollte klar geworden sein, was mich daran stört.

Zum dynamischen:
Das es nicht zu dynamisch sein sollte ist mir klar. Ich würde nur gerne möglichst wenig code haben und dabei trotzdem eine effiziente Leistung. Aber meine Frage wahr wohl wirklich zu unkonkret... Ich danke euch trotzdem :)

Zu der MySQL-Dynamik:
Das ich dabei immer alle Felder auslese ist mir klar und das will ich ja auch!
Sonst wäre das logischer Weise sinnlos und zu Zeitaufwendig. Aber ich will z.B. in einer User-Klasse alle Benutzerinformationen auslesen und dabei nicht alle Felder angeben müssen.

Ich freue mich über weitere anregende Beiträge ;)
 
Hoi,

viel anregendes kann ich gerade nicht beisteuern, eher werfe ich nur mehr Fragen in den Raum.
So zum Beispiel, das du schreibst, das du nur deine 6-8 Dateien includest und sonst nichts machst. Andersrum sagst du aber, das dein Code möglicherweise optimiert werden kann.
Für mich heisst "nur includen", das quasi leer Seiten includet werden.
Der Code der in global.php definiert wird (ich tippe mal auf Template laden, DB Config laden etc) ist schon wieder mehr als "nur include".
Hier mal ein Beispiel:
ab.php included
- a.php included
- b.php included
- c.php echo "Hallo";
- a2.php included
- b.php included
- c.php echo "Hallo";

Es sind also 6 Includes drin, wobei nur in der c.php ein echo drin steht. Gemessen mit Script auf http://www.php.net/microtime.
Ergebnis: 0.00230 Sekunden, das bedeutet ein reines includen ist zu vernachlässigen.
Die 0,03 Sekunden müssen also von der Grösse und dem Inhalt der ausgeführt wird kommen.
Mache ich das Spiel von oben nochmal, nur gebe ich in c.php nicht nur ein "Hallo" aus, sondern baue auch noch eine MYSQL Verbindung auf (nur aufbau, keine Abfrage) liegt die Dauer schon bei 0.0053 - 0.0074 Sekunden. Jetzt wähle ich noch eine SQL Table aus, schon bin ich bei 0.0062 - 0.0079 Sekunden. (Also 2x Sql Verbindung und jeweils 1xTable wählen).
Lass ich bei dem ganzen kram noch was rechnen oder eine For Schleife laufen geht das sicherlich schnell länger (teste ich jetzt aber nicht).

Ok, was ich damit sagen will, jede Zeile Code erzeugt ein wenig "Zeit" und wenn jede Zeile 0.0010 Sekunden einnimmt, summiert sich das halt bei ~100 Zeilen schon auf 0.1 Sekunden (nochmal zur Verdeutlichen Null KOMMA eins SEKUNDEN).

Daher, wenn man eine Aussage treffen möchte, was in deinem Fall diese "ewige" Warterei ausmacht, müsste man den Code sehen.

Auf die Lösung für das auslesen von allen Spalten eine Table gehe ich jetzt nicht ein. Das ist glaube ich ein bischen Weltanschauung wie man das hand habt. Einerseits nerven dich 0,05 Sekunden und dann schreibst du die Funktion um nicht alle Spaltennamen hinzuschreiben, was wahrscheinlich mehr Zeit in Anspruch nimmt durch die Funktion und einer zusätzlichen SQL Abfrage + Verarbeiten des Ergebnisses.


Wie am Anfang gesagt, nicht viel neues dabei. Ich muss ehrlich sagen, das die Sachen, die ich programmiert habe nie die Grösse erreicht haben, das ich auf jede zehntel oder hundersttel Sekunde achten musste.

Gruss
 
Nun das mit dem Code optimieren bezog sich auf die Dateien die ich include.
Aber du hast recht, es liegt an der größe der Dateien...
Vielleicht denk ich aber auch in falschen Dimensionen: Bis wohin kann man den eine Script-Ladezeit noch "schnell" nennen?

//EDIT: Ich möchte dafüür nicht extra ein neues Thema aufmachen und weiss, dass ich vom Thema abkomme, aber kann mir vielleicht jemand sagen wozu eigentlich LEFT JOIN da ist? Bzw wie man es benutzt, oder ob es dazu eine gute Seite gibt die das gut erläutert?
Danke! :)
 
Platzsparend, dynamisch und schnell arbeitet man vor allem mit OOP (Objekt Orientierte Programmierung (Und ja Programmierung wird das auch in diverser Fachliteratur genannt :D)) ;) Wie auch immer dein Code aussieht? Mit OOP wirds schneller aber auch komplexer in Bezug auf das Verständnis.

"LEFT JOIN" siehe:
http://dev.mysql.com/doc/refman/4.0/de/join.html
 
Zurück