2012-07-11 11 views
5

Ich möchte wissen, wie können wir SQL-Abfrage im Hintergrund ausführen ... Ich habe eine große Abfrage, die so viel Zeit dauert Ich möchte dies als Hintergrund ausführen, so dass meine Seite Ladezeit wird weniger sein ..Wie können wir SQL-Abfrage im Hintergrund ausführen

+0

prüfen http://stackoverflow.com/questions/60878/priority-of-a-query-in-ms-sql – Sliq

Antwort

3

Führen Sie die Abfrage in einem PHP-Skript mit Cron und Cache das Ergebnis.

2

aussehen würde ich würde den CRON und Cache-Ansatz vorschlagen, oder die Verwendung von AJAX implementieren.

Mit CRON und Cache, führen Sie Ihre Abfrage, dann serialisieren Sie es und speichern Sie es in eine Datei für die Gesundheit. Rufen Sie auf und nehmen Sie das Desertieren bei Bedarf vor.

Mit AJAX, wenn Ihre Seite lädt, rufen Sie eine Datei auf, die die Abfrage ausführt und zurückgibt. Auf diese Weise können Sie eine Wartungsanzeige anzeigen, während Ihr Server die Abfrage ausführt und sie voneinander getrennt sind.

3

Sie könnten Ihre Abfragen in separaten Skripten mit AJAX aufrufen. Wenn die Seite angefordert wird, verarbeiten Sie PHP wie gewohnt, rendern und senden die Seite an den Besucher und starten sofort ein AJAX-Skript, um ein anderes PHP-Skript anzufordern, das die langsame Abfrage ausführt. Die Seite wird geladen, während die Abfrage ausgeführt wird. Wenn Sie die Ergebnisse aus Ihrer Abfrage erhalten, verwenden Sie ein wenig JavaScript, um die Ergebnisse zu integrieren. Der Vorteil hierbei ist, dass während des Ladens der Seite die Abfrage ausgeführt wird, sodass Sie beides gleichzeitig tun.

Sehen Sie sich auch die Optimierung Ihrer Abfrage an und stellen Sie sicher, dass Sie einen Index für Ihre Tabellen festgelegt haben, um die Abfrage zu beschleunigen.

+0

thanks..I Ich denke auch so ... –

+0

Dies ist keine Lösung für Abfragen, die Sie immer ausführen möchten.Was passiert, wenn der Benutzer Javascript deaktiviert oder einen Browser verwendet, der kein JavaScript unterstützt? – nonybrighto

+0

Nein, dies ist eine Lösung für eine langsame "Hintergrund" -Anfrage. Wenn Sie es sofort machen wollen, drücken Sie einen anderen Endpunkt. Wir reden über zwei verschiedene Dinge. Da JavaScript deaktiviert ist, müssen Sie den Benutzer wahrscheinlich darüber informieren, dass die Funktionalität aufgrund seiner Auswahl verloren gegangen ist. Eine Webapplikation mit etwas Raffinesse, wie das Ausführen von Abfragen auf dem Server, während der Benutzer etwas anderes tut, wird entweder JavaScript haben oder erfordern, dass der Benutzer aktualisiert wird und sieht, ob die Abfrage abgeschlossen ist. Es ist nichts falsch daran, JavaScript zu einer Voraussetzung für den vollen Funktionsumfang zu machen. –

0

Schreiben Sie die Abfrage in Ihre PHP-Datei und planen Sie sie nach Uhrzeit oder Zeitintervall, wann Sie sie ausführen möchten. Für Linux-Zeitplan CRON oder Windows verwenden Task Scheduler sonst können Sie es auslösen, indem Ajax Anfrage

Verwandte Themen