Нормально ли иметь проблему с производительностью в Doctrine? - PullRequest
0 голосов
/ 07 марта 2019

Нормально ли иметь проблемы с производительностью в доктрине при работе со вставкой или обновлением более 2000 записей? Должен ли я обратиться к PDO?

1 Ответ

0 голосов
/ 07 марта 2019

Да.Доктрина эффективна, когда вы используете массовое выделение, но очень плохо, если вы используете массовое обновление, вставку или удаление.Не используйте доктрину, для этих операций используйте обычный sql.Например, при массовой вставке вы создаете 2000 объектов (недостаточно памяти сервера), а затем доктрина вставляет их один за другим, если вы выполняете очистку в цикле.Конечно, вы можете сохранить их, например, с помощью 200 объектных блоков и сбросов, но при этом использование памяти будет намного больше, чем при вставке через простой sql.Еще хуже, если вы выберете 2000 записей с помощью доктрины, тогда эти записи станут не только объектами сущностей, но и станут постоянной коллекцией с множеством сопоставленных с ними других объектов, и при попытке сохранить их сервер будет использовать еще больше памяти.

...