Mailinglisten-Archive |
> für mein Datenbankhandling verwende ich eine zentrale Klasse, in der ich für > jede Tabelle mit field_name und field_type durch alle Felder schleife (via > assoziatives Array), mit den globalen Werten der Formularfelder vergleiche > und bei einer Änderung die entsprechende Aktion (bes. update, insert) > ausführe. > > Schön portabel, nur: wenn man einige Tabellen miteinander joint, wird das > bei der Menge der Variablen schnell unübersichtlich, und irgendwie habe ich > das Gefühl, daß man das eleganter machen kann. Problem bei solchen Sachen ist immer: bringt einem die Optimierung was? Eleganz ist immer schön, und man sollte sie nur dann aufgeben, wenn es erforderlich ist. Zuerst einmal ist die Ausführung von PHP(4) auf einem Webserver sicherlich wesentlich schneller als ein Datenbankzugriff, deswegen gilt es festzustellen, ob der PHP-Code tatsächlich so lahm ist, daß er zum Flaschenhals wird. Muß man dann wirklich etwas im Code optimieren, so gilt: möglichst viel Kalkulation aus der Schleife herausverlagern in den Setupteil. Kein unnützes Kopieren von Variableninhalten oder komplizierte Variablenzugriffe (manchmal muß man sich entscheiden, ob komplizierte Zugriffe schneller sind als das Kopieren oder umgekehrt). Merke: PHP4 arbeitet mit Referenzen und kopiert nicht jedesmal einen Wert, wenn man ihn auf eine andere Variable zuweist! Dies ist jedoch bei einer Typänderung der Variablen nicht mehr der Fall, deswegen muß man hier genau aufpassen, was passiert. Generell sollte man seinen Code also vorher profilieren und herausfinden, wo die Schwachstellen liegen. Danach diese dann konsequent eliminieren. Ein Pauschalrezept gibt es meistens nicht, bis auf: tue nichts Unnützes, und wenn man was tut, tu es nie öfter als nötig. Dies ist jetzt natürlich eine reine programmbezogene Optimierung, es läßt sich auch noch einiges mit SQL-Optimierung herausholen, aber das ist dann ein anderes Thema. Till
php::bar PHP Wiki - Listenarchive