Hello,
- MySQL-Resultsets freigeben, hat aber keinen Einfluss auf den
Scriptspeicher
Werden Die nicht automatisch freigegeben?
Nein. Nicht während der Scriptlaufzeit.
Nun gibt es ja Scripte, die nur ein einziges Query absetzen, da ist das nicht interessant. Aber es gibt auch wirkliche Programme, die zur Abfrage und Manipulation von Datenbeständen schon mal 30 und mehr Queries in einem Script benötigen. Da juss man dann schon mal genau hinschauen, ob man das Resultset überhaupt noch braucht. Sonst fängt nämlich der SQL-Server an zu swapen, und damit geht die Perfomance mindestens um Faktor 1000 in die Knie.
Wir hatten hier neulich so ein Beispiel. Der Fragesteller hat sein Script durch frühzeitige Freigabe ungefähr 6mal so schnell bekommen. Und ob ein Besucher nun 3sec oder 18sec auf eine Antwort warten muss, ist schon relevant.
Aber ein viel wichtiger Punkt sind hier die Freigaben nicht mehr benötigter Arrays. Die baut man sich ja oft mit
$_daten = file("dateiname")
ganz unbedacht auf, und vergisst sie dann bis ans Scriptende...
Wozu die Daten noch halten, wenn sie schon lange wieder weggeschrieben sind.
Das Auslagern von Daten betraf z.B. die Bildspeicherung. Das Bild wird hochgeladen, ins Script gezogen und dann ggf. auch nochmal in der Session abgelegt. Das ist unpraktisch. Besser gleich in Datei abspeichern und nur den Pfad/Namen des Files merken. Den Pufferspeicher wieder freigeben.
Liebe Grüße aus http://www.braunschweig.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen