2016-04-06 3 views
0

Ich habe ein Problem, und nachdem ich danach gesucht habe, kann ich nicht scheinen, die Antwort zu finden. Ich bin mir auch nicht sicher, was ein guter Suchbegriff für das ist, wonach ich suche. Verzeih mir im Voraus.Wie man mit großen Daten für mehrere Seiten in PHP arbeitet

Mein Problem ist einfach und auch nicht. Ich habe eine funktionierende Website, die nicht öffentlich ist und eine große Anzahl von Datensätzen/Dokumenten von MongoDB abruft. Ich nehme dann die Informationen aus dem Datensatz, nach dem ich suche, um ein Diagramm zu erstellen. Das Problem ist, ich kann die beste Vorgehensweise für den Umgang mit diesen Daten nicht herausfinden. Das Nachschlagen aus der Datenbank ist aufgrund der Anzahl der Datensätze, die die Seite abrufen muss, teuer. Daher würde ich annehmen, dass es einen besseren Weg geben muss.

Im Moment ruft jede Seite die Datenbankklasse auf, die den mongodb php-Konnektor verwendet, um Informationen aus der Mongo-Datenbank abzurufen. Jedoch erstellt jede Seite die Klasse neu und zieht die gleiche Information erneut. Wie kann ich diese Informationen für mehr als eine Seitenanforderung persistent machen?

Ich weiß nicht, ob die Verwendung einer Sitzungsvariablen sicher ist oder ob ich sie überhaupt verwenden kann. Global (s) scheinen mir auch nicht die richtige Antwort zu sein. Wenn die Website zustandsbehaftet wäre, würde ich die Klasse einfach verwenden und weitergeben, aber leider sind Webseiten staatenlos. Kann ich nach Unterlagen suchen, die mir helfen, dieses Problem zu lösen? Oder ist jemand schon einmal auf dasselbe Problem gestoßen und kann mir helfen, es zu lösen.

Die Website, die ich gefunden habe auf der Suche nach "wie man Daten persistent in PHP machen" ist eine der php.org Website und es heißt, Sie sollten versuchen zu vermeiden, Daten persistent zu machen, da die Engine nicht wirklich die Speicherbelegung verfolgt, und andere Gegenstände der Art. Wie erhalten Sie Speicher für mehr als eine Seitenanforderung, so dass Sie nicht für jede Anfrage große Datenmengen suchen müssen?

Noch einmal, ich bin mir nicht ganz sicher, ob ich nach dem richtigen Begriff suche, und es besteht eine gute Chance, dass ich bei meinen Suchen nicht die richtigen Begriffe verwende. Weil ich wirklich versuche, Duplikate von Fragen zu vermeiden.

Vielen Dank im Voraus,

Antwort

1

Die Antwort auf Ihre Frage wäre: „Caching“. Sie können einen dateibasierten Cache (speichern Sie einfach das Ergebnis in einer Datei) oder einen speicherbasierten Cache wie Memcached verwenden.

Wenn das Ergebnis zum Beispiel ein Array ist, können Sie/json_encode serialisieren und die Ergebnisse speichern.

+0

yep, fand eine Website, um mir auch den Weg zu helfen. http://www.xeweb.net/2010/01/15/simple-php-caching/ – Caperneoignis

+0

Danke! Ich kann deine Antwort in einigen akzeptieren. Ich habe mich immer gefragt, für was memcached war. Ich habe es schon einmal in PHP gesehen. – Caperneoignis

Verwandte Themen