2009-08-22 3 views
1

У меня есть мои скрипты PHP, запущенные на сервере WAMP. Вот что я делаюМедленный отклик на базу данных пишите на php

  1. PHP скрипт, который запрашивает базу данных и получает набор строк (я поставил set_time_limit (0) // неограниченного время для сценария для выполнения)
  2. На основании набор результатов Я выполняю сценарий tcl для каждой строки результирующего набора
  3. Скрипт TCL занимает около минуты, он также вставляет некоторые данные в одну и ту же базу данных
  4. Теперь одновременно, когда выполняется сценарий TCL, если i выполнить другой скрипт PHP, который записывает в базу данных, я не могу это сделать, поскольку время ответа слишком медленное. Она Infact ожидает в PHP скрипт A/TCL скрипт для завершения
  5. Однако в течение этого времени, считывает из базы данных хорошо и быстро

ли кто-нибудь есть какие-нибудь предложения?

С уважением, Митхуном

+0

База данных - это MySQL. – Vidya

+0

Какой двигатель вы используете для этих таблиц? Выполняет ли какой-либо из сценариев работу с транзакциями? –

+4

Если вы используете таблицы myisam, mysql блокирует всю таблицу во время записи в таблицу. Вероятно, вы, вероятно, выполняете некоторые длительные операторы обновления или instert или, иначе, явно блокируете таблицу в коде. Или вы используете innodb и имеете длительные транзакции – nos

ответ

4

Сессия не может быть разделяемым параллельными сценариями. Любые новые запросы, которые пробуют session_start(), будут висеть в этом месте, ожидая окончания предыдущего скрипта.

Поскольку ваш сценарий занимает неопределенное время до конца, его хорошая идея - session_write_close() сразу после получения всей необходимой информации из суперзвельника $ _SESSION, поэтому одновременные запросы больше не будут висеть.

+0

Большое спасибо за ответ. Это сработало !!! – Vidya

 Смежные вопросы

  • Нет связанных вопросов^_^