одна общая выборка медленнее многих индивидуальных

xbs

Новичок
одна общая выборка медленнее многих индивидуальных

Сделал небольшую модернизацию с сайтом, заменил конструкции типа:
PHP:
$row = SELECT id FROM table;
для каждой $row {
  $obj = new Object($row['id']); // внутри конструктора, поля объекта инициализируются спомомщью SELECT * FROM table WHERE id = $id;
}
поменял на:
PHP:
$row = SELECT * FROM table; // выбрать все данные
для каждой $row {
  $obj = new Object($row); // инициализация объекта сразу данными
}
Казалось бы, вторая конструкция должна работать быстрее первой, т.к. в ней отсутствуют повторяющиеся запросы на выборку данных для каждого объекта. Но это не так, время исполнения скриптов увеличилось на 30% (грубо).
PHP Version 4.3.11

Почему так может быть?
 

zerkms

TDD infected
Команда форума
возьми профайлер и померь код до и после.
 

xbs

Новичок
возьми профайлер и померь код до и после.
Сложности возникли с настройкой Eclipse профайлера. Посоветуешь какой взять?

~~~

Проблему разрешил ручным профилированием. Всем спасибо!

Оказывается, так с одним запросом из 2х таблиц:
$row = select * from t1 LEFT JOIN t2 ON ....
foreach {
$obj = new Obj($row);
}

будет медленнее, чем так со многими индивидуальными запросами

$row = select id from t2;
foreach {
$obj = new Obj($row['id']); // <-- внутри select * from t1 where id = $id;
}
 

zerkms

TDD infected
Команда форума
бред.
показывай структуры всех таблиц, полные реальные запросы и EXPLAIN'ы.
 
Сверху