Christian: Mysql liefert zu große Felder für PHP

Beitrag lesen

Moin!

Hallihallo!

Danke für deine ausführlichen Erklärungen, jetzt ist mir der ganze Mechanismus viel klarer geworden.

  1. mysql_unbuffered_query speichert die Ergebnisse nicht in einem Puffer zwischen, sondern fragt jede Zeile erst dann ab, wenn sie tatsächlich von PHP abgefragt wird. Nachteile sind: 1. Die Datenbank kann während dieser Abfrage keinerlei anderweitige SQL-Requests mit DIESER Verbindung entgegennehmen, [...]. 2. Du kannst im Ergebnis nicht mehr herumspringen und wahlfrei Zeilen abrufen (mysql_data_seek, mysql_num_rows).

  2. Du kannst die Größe der Abfrage auch dadurch verkleinern, dass du sie in mehrere Teile zerlegst, die insgesamt jeweils in den Puffer passen. "LIMIT" bietet sich hierbei an.

Die Nachteile, die sich durch mysql_unbuffered_query ergeben würden, sind für mein Problem belanglos.
Allerdings habe ich das Problem, dass ich LIMIT nicht verwenden kann, weil ich ja nur eine einzige Zeile lese. Das Protokoll, was ich oben erwähnt habe, ist in einem einzigen Feld (mediumtext) gespeichert. Die unbufferd_query bringt da wohl nichts, weil ja auch alles am Stück übertragen werden muss. Und genau das müsste ich irgendwie vermeiden. Gibt es eine Möglichkeit die einzelnen Felder blockweise von der DB zu empfangen?

Gruß
Chris