Оптимизация запросов Doctrine

Я создал запрос, используя построитель запросов доктрины, который вставляет почти 65000 строк (включая все 3 таблицы) в 3 разные таблицы одновременно, когда что-то выполняется. И для завершения этого полного процесса требуется почти 2-3 минуты для выполнения. Что я сделал, так это сохраняю записи в циклах, а затем, наконец, сбрасываю. Итак, есть ли способы минимизировать время выполнения и вставлять данные в течение нескольких секунд.


person anupkumar    schedule 02.05.2013    source источник


Ответы (1)


Нет, к сожалению, Doctrine не поддерживает группировку вставок в один оператор. Если вам нужно выполнять массовые вставки, одной из возможностей является выполнение $em->flush() и $em->clear() после каждой сотой строки или около того, см. рекомендацию руководства:

https://doctrine-orm.readthedocs.org/en/latest/reference/batch-processing.html

person K. Norbert    schedule 03.05.2013