|
|
|
| Добрый день всем. Помогите пож. со след. вопросом.
Есть вот такой кусок кода:
$cnt = 0;
$row1 = $this->registry->db->select("SELECT Id FROM complaint WHERE qu_publish = '1' && answer_to_id = '0' && qu_blogs = '8'");
foreach ($row1 as $dataRow)
{
$row2 = $this->registry->db->selectrow("SELECT Id FROM complaint WHERE answer_to_id = '$dataRow[Id]'");
if ($row2 == null) $cnt ++;
}
| Если записей в базе коло 2тыщ... то запрос обрабатывается секунд 10... на локалке, а в сети и то больше . Мне нужно какнить сократить время запроса..... объединить в одно выражение...
Скрипт подсчитывает кол-во вопросов в БД, на которых нет ответа. Все вопросы и ответы хранятся в одной таблице (answer_to_id = 0 - это значит вопрос, !=0 - это значит ответ на вопрос который ссылается данное поле)
P/S: для упрощения работы с БД использую DbSimple | |
|
|
|
|
|
|
|
для: Roo$
(12.07.2011 в 15:35)
| |
SELECT Id
FROM complaint
WHERE answer_to_id IN
(SELECT Id
FROM complaint
WHERE qu_publish = '1' && answer_to_id = '0' && qu_blogs = '8')
|
2 тыс записей - это мизер по меркам БД
индексы на полях присутствуют? | |
|
|
|