2009-08-22 7 views
1

Ich habe meine PHP-Skripte auf dem WAMP-Server ausgeführt. Hier ist, was ichLangsame Antwort auf Datenbank schreiben von PHP

  1. PHP-Skript Ein tue, der die Datenbank abfragt und bekommt eine Reihe von Zeilen (I die set_time_limit (0) // unbegrenzte Zeit eingestellt haben für das Skript ausgeführt werden) auf der
  2. Basierend Ergebnismenge Ich führe für jede Zeile der Ergebnismenge ein tcl-Skript aus
  3. Das TCL-Skript dauert etwa eine Minute, es fügt auch einige Daten in dieselbe Datenbank ein
  4. Jetzt, wenn das TCL-Skript ausgeführt wird, wenn i Führen Sie ein anderes PHP-Skript aus, das in die Datenbank schreibt. Ich kann das nicht, da die Antwortzeit zu langsam ist. Es infact wartet auf das PHP-Skript A/TCL-Skript während dieser Zeit
  5. jedoch zu vervollständigen, aus der Datenbank liest, ist fein und schnell

Hat jemand irgendwelche Vorschläge?

Grüße, Mithun

+0

Die Datenbank ist MySQL. – Vidya

+0

Welche Engine verwenden Sie für diese Tabellen? Arbeitet eines der betreffenden Skripts mit Transaktionen? –

+4

Wenn Sie myisam-Tabellen verwenden, sperrt mysql die gesamte Tabelle, während Schreibvorgänge in die Tabelle auftreten. Wahrscheinlich machen Sie einige lang laufende update- oder instert-Anweisungen oder sperren die Tabelle explizit explizit im Code. Oder Sie verwenden innodb und haben lange laufende Transaktionen – nos

Antwort

4

Eine Session kann nicht durch die gleichzeitige Skripte geteilt werden. Alle neuen Anfragen, die versuchen, session_start() zu versuchen, hängen an diesem Punkt und warten auf das vorherige Skriptende.

Da Ihr Skript eine unbestimmte Zeit benötigt, um es zu beenden, ist es eine gute Idee zu session_write_close() direkt nach dem Erhalt aller Informationen aus der $ _SESSION superglobal, so dass gleichzeitige Anfragen nicht mehr hängen.

+0

Vielen Dank für die Antwort. Es funktionierte !!! – Vidya

Verwandte Themen