Mailinglisten-Archive |
Actra AG Internet Services wrote: > A) Kann ich so die Gesamtzahl von MySQL-Queries aus dem Portal reduzieren Wenn du kein MySQL verwendest, brauchst Du auch keine MySQL-Query :-) > B) Ist die Seite schneller, wenn die Daten aus kleinen Textdateien gelesen > werden !? Bei kleinen Textdateien, ja. > C) Sehe ich so direkt, welches Mitglied mit seinem Gästebuch wieviel > Speicherplatz belegt Über Quota etwa könntest Du das für jeden Benutzer festlegen, ablesen anhand der Dateigröße, klar. Ist die Frage, wie Du das ermitteln wolltest: regelmäßige Prüfung durch Cronjob, der die Gästebuch-Dateien auf Ihre Größe scannt, oder aber in das GB-Script eingebracht.... > Gibt es ein Limit von der Grösse dieser Textdateien, das diese nicht > überschreiten sollten, da es ansonsten zu Problemen kommen könnte? Zum > Beispiel 2000 Einträge oder so... An den Einträgen kannst du dies gar nicht festmachen. Es gibt Beschränkungen. Aber nicht direkt von Seiten der Technik, sondern eher vom Konzept und Sinndenken. Es hat meiner Meinung nach kaum noch Sinn Textdateien zu verwenden, wenn die Zahl der Einträge 3 oder 4-stellig ist (da diese ja interpretiert werden müssen, nicht indiziert sind für Suchen, Sortieren oder Paging, direktes Löschen nicht möglich etc.) Im Dateisystem kommt es auf dein Betriebssystem und den Kernel an. Ich würde das der Performance wegen einmal abwägen und durchtesten. Wenn Du den Quelltext, den Du gepostet hattest, analog auch für das Auslesen verwendest, kommst Du schnell an die Grenzen. Die liest mit file() die Datei komplett in den Speicher. Je größer die Datei, desto mehr Arbeitsspeicher, desto größer die Strukturen (Arrays...), desto aufwändiger die Verarbeitung. Daher würde ich eher dazu tendieren, die Datei zeilenweise auszulesen und bei Löschen der Einträge das Original-File locken, in eine temporäre Arbeitskopie schreiben. Nach Beenden des Vorgangs, original freigeben und unlink(), danach Arbeitskopie umbenennen.... > $lineArray = split("\|", $line); Tip: explode('|', $line) ist um einiges schneller als split. Grund hierfür ist recht einfach: split sucht nach einem regulären Ausdruck. explode dagegen arbeitet auf Basis einer einfachen Text-Suche. > ES wird also jedesmal das File geleert und wieder neu gefüllt, jedoch ohne > den zu löschenden Eintrag... > > Gäbe es dafür eine schönere Lösung, um einzelne Einträge zu löschen? Die > Einträge sind im Textfile ungefähr in dem Format: > > ID|Datum|Name|Email|URL|Titel|Text| > Das wird nicht möglich sein, da du die komplette Datei einlesen musst, bevor du den Eintrag löschen kannst etc. Hoffe das hilft Dir ein wenig weiter. Gruß aus Hannover -- Dennis Sterzenbach
php::bar PHP Wiki - Listenarchive