Symfony2, Doctrine, добавьте\вставьте\обновите лучшее решение для большого количества запросовPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Symfony2, Doctrine, добавьте\вставьте\обновите лучшее решение для большого количества запросов

Сообщение Anonymous »

Представим, что у нас есть такой код:

Код: Выделить всё

while (true)
{
foreach($array as $row)
{
$item = $em->getRepository('reponame')->findOneBy(array('filter'));

if (!$item)
{
$needPersist = true;
$item = new Item();
}

$item->setItemName()
// and so on ...

if ($needPersist)
{
$em->persist();
}
}
$em->flush();
}
Итак, дело в том, что код будет выполняться много раз (пока сервер не умрет :) ). И мы хотим его оптимизировать. Каждый раз, когда мы:
  • Выбираем уже запись из репозитория.
  • Если запись не существует, создаем ее. .
  • Установить для него новые (обновить) переменные.
  • Применить действия (сбросить).
Итак, вопрос в том, как избежать ненужных запросов и оптимизировать «проверку существования записи»? Потому что когда запросов 100-500, это не так уж и страшно... А вот когда доходит до 1000-10000 за один цикл while - это уже слишком.

PS: Каждая запись в БД уникальна по нескольким столбцам (не только по идентификатору).

Подробнее здесь: https://stackoverflow.com/questions/165 ... of-queries
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»