2009-08-22 31 views
1

我有我的PHP腳本運行在WAMP服務器上。 下面是我在做什麼對數據庫寫入的響應緩慢從PHP

  1. 查詢數據庫,並得到一組行的PHP腳本A(我已經設置了參數或者set_time_limit(0)//無限時間腳本來執行)根據
  2. 結果集我執行Tcl腳本的結果的每一行設置
  3. 的TCL腳本需要大約一分鐘來執行,它也有一些數據插入到同一數據庫現在
  4. 同時當TCL腳本執行,如果我執行另一個寫入數據庫的PHP腳本,由於響應時間太慢,我無法做到這一點。它的PHP腳本A/TCL腳本INFACT等待在此期間,但是完成
  5. ,從數據庫中讀取細而快

有沒有人有什麼建議嗎?

問候, 大額牛

+0

數據庫是MySQL。 – Vidya 2009-08-22 14:15:17

+0

你使用這些表的引擎是什麼?任何有問題的腳本都可以使用事務嗎? – 2009-08-22 14:22:39

+4

如果您使用myisam表,則在寫入表時會鎖定整個表。您可能正在執行一些長時間運行的更新或instert語句,或者在代碼中明確鎖定表。或者你正在使用innodb並且長時間運行交易 – nos 2009-08-22 14:25:13

回答

4

甲會話不能被併發腳本共享。任何嘗試session_start()的新請求都會在此處掛起,等待上一個腳本結束。

由於您的腳本正在花費未定的時間來結束,因此在從$ _SESSION超全局獲取所需的所有信息之後,它的一個好主意是session_write_close(),因此併發請求不會再掛起。

+0

非常感謝你的回覆。有效 !!! – Vidya 2009-08-23 02:15:13