Du brauchst nicht 1000 oder 150 Objekte auf einmal, sondern immer nur eines. Eine große Ergebnismenge bei MySQL heißt nicht, das die sofort in den RAM wandert. Schau dir z.B. bei http://si1.php.net/manual/de/pdostatement.fetch.php an wie das in PHP funktioniert.
Ankündigung
Einklappen
Keine Ankündigung bisher.
[Erledigt] Query offset
Einklappen
Neue Werbung 2019
Einklappen
X
-
Zitat von Tropi Beitrag anzeigenEine große Ergebnismenge bei MySQL heißt nicht, das die sofort in den RAM wandert. Schau dir z.B. bei http://si1.php.net/manual/de/pdostatement.fetch.php an wie das in PHP funktioniert.
Kommentar
-
Zitat von erc Beitrag anzeigenDas eine hat mit dem anderen nix zu tun.
Im Gegenzug muss, wenn man die Ergebniszeilen (result rows? ) einzeln bearbeitet (und einen unbuffered query benutzt), wesentlich weniger RAM zur Verfügung stehen. Anstatt also das Ergebnis auf mehrere Abfragen aufzuteilen sollte man lieber eine (unbuffered) Abfrage machen und sich dann das Ergebnis Zeile für Zeile holen, anstatt mehrere Abfragen und dann das jeweilige Teilergebnis als Ganzes.
Kommentar
-
Zitat von Tropi Beitrag anzeigenJein. Ich behaupte zu wissen das der jetzige Aufruf von query_things() ein Array mit 150 Elementen zurückgibt. Dieses Array bleibt muss im RAM bleiben. Dabei ist es egal ob diese Elemente vorher mit einem buffered oder unbuffered query geladen werden.
Mit API schließt sich der Ansatz mit fetch zu arbeiten schon fast aus. Natürlich geht es auch.
Kommentar
-
Zitat von No3x Beitrag anzeigenEs handelt sich um SQL Abfragen.Zitat von No3x Beitrag anzeigenGenau es handelt sich um eine API ...
Außer natürlich query_things() gehört zur API und gibt dir immer X Elemente in einem echten Array zurück. Das ist dann halt ne blöde API, aber dann bleibt dir wohl echt kaum was anderes übrig als jedes mal ein paar (z.B. eben 150) auf einmal zu laden.
Kommentar
-
Bitte nicht aus dem Kontext reißen.
Zitat von erc Beitrag anzeigenEin Query ist nicht zwangsläufig eine SQL Abfrage. Ich würde sagen hier geht es eher um ein Webservice...Zitat von No3x Beitrag anzeigenEs handelt sich um SQL Abfragen.
Es handelt sich um eine API, die nicht die API der Datenbank ist sondern eine API von things. Die API greift dabei auf SQL zu. Nicht auf einen Webservice via SOAP oder JSON.
Außerdem benutze ich die API und habe keinen Einfluss auf sie.
query_things() liefert ein Array von Thing Objekten.
Sorry, dass ich das Problem etwas abstrahiert habe, um Fokus auf das Offset zu richten.
Kommentar
-
Zitat von No3x Beitrag anzeigenAußerdem benutze ich die API und habe keinen Einfluss auf sie.
query_things() liefert ein Array von Thing Objekten.
Aber ja, in dem Fall kann man da (leider) nicht mehr machen.
Wenn erledigt, dann bitte auch oben auf "Erledigt" klicken.
Kommentar
Kommentar