Я работаю над большим приложением с БД, которое иногда требует огромного импорта данных. Данные импортируются из таблиц Excel и в начале процессов (около 500 строк) данные обрабатываются относительно кратковременно, но последние значительно замедляются. Импорт генерирует 6 связанных сторон в строке excel, которые очищаются после обработки каждой строки. Я предполагаю, что все эти сущности получают кеширование по доктрине и просто накапливаются. Моя идея состоит в том, чтобы очистить все эти кеш каждые 200 строк, но я не мог найти, как очистить его от кода (на данном этапе консоль не является опцией). Любая помощь или ссылки будут высоко оценены.Кэширование доктрины
ответ
Я полагаю, что причина может быть не в Доктрине, а в базе данных transaction log buffer size. В документации указано
Большой буфер журнала позволяет запускать большие транзакции без необходимости записи журнала на диск до совершения транзакций. Таким образом, если у вас большие транзакции, делая буфер журнала большим, он сохраняет дисковый ввод-вывод.
Скорее всего, вы вставляете свои данные в одну крупную транзакцию. Когда буфер заполнен, он записывается на диск, который обычно медленнее.
Существует несколько возможных решений.
- Увеличьте размер буфера, чтобы транзакция помещалась в буфер.
- Разделите транзакцию на несколько частей, которые вписываются в буфер.
Во втором случае имейте в виду, что каждая транзакция также требует времени, поэтому упаковка каждой вставки в отдельной транзакции также снизит производительность.
Я рекомендую обернуть около 500 строк в транзакции, потому что это похоже на размер, который подходит в буфере.
- 1. Кэширование доктрины ORM в приложении ZF2
- 2. Symfony 2.3 Расширение доктрины Gedmo переводимое кэширование
- 3. Наследование доктрины доктрины
- 4. Отношение к доктрине доктрины
- 5. IIS кэширование кэширование и HTTP
- 6. Кэширование SQLite и кэширование приложений
- 7. Объектно-ориентированная схема доктрины
- 8. Наследование доктрины PHP
- 9. Учреждение доктрины всегда обновляется
- 10. Как проверить миграцию доктрины?
- 11. загрузки доктрины светильников
- 12. Clojure эквивалент доктрины Python?
- 13. Единичный тестовый репозиторий доктрины
- 14. Наследование на вложениях доктрины
- 15. zf2 и отношение доктрины
- 16. Установка доктрины Php
- 17. Результаты доктрины кэширования Symfony2
- 18. подсчет Доктрины записей таблицы
- 19. Интеграция доктрины с CodeIgniter
- 20. Создание пулов доктрины вручную
- 21. symfony2 первый запрос доктрины
- 22. Соотношение свойств доктрины
- 23. Symfony2, Устойчивость данных доктрины
- 24. Как сопоставить доктрины сущностей
- 25. Проверьте правильность отношений доктрины
- 26. Symfony ORM доктрины запросов
- 27. Проверка доктрины PHP
- 28. Документация доктрины для 1.2
- 29. Отношения доктрины в mysql
- 30. setPeerCount эквивалент доктрины
Вы проверили, помогает ли это? –