단일 쿼리로 여러 엔티티를 DB에 삽입 할 수 있습니까? 내가 here에서 예를 사용하는 경우 나는 웹 디버거 Doctrine2 일괄 삽입
2012년 8월 23일
업데이트]여러 쿼리를 볼 수 있습니다 나는 다음과 같은 관련 링크를 발견했다.
어떤 사람들은 궁금해 할 것 같다 :
- http://www.doctrine-project.org/blog/doctrine2-batch-processing.html
- doctrine2 - How to improve flush efficiency?
- Doctrine 2: weird behavior while batch processing inserts of entities that reference other entities
주요 것들 : 나는 그것을 일괄 처리를 이해하는 사람에게 도움이되기를 바랍니다 Doctrine이 복수 삽입 ( )을 사용하지 않는 이유 (삽입하는 (...) 값 (...), (...), ... (...) ...
우선이 구문은 mysql 및 최신 postgresql 버전에서만 지원됩니다. 둘째, AUTO_INCREMENT 또는 SERIAL을 사용하고 ORM이 ID 관리 개체를 관리하기위한 식별자를 필요로 할 때 이러한 다중 삽입에서 모두 생성 된 식별자를 쉽게 얻을 수있는 방법이 없습니다. 마지막으로, 삽입 성능은 ORM의 병목 현상이 거의 없습니다 ( ). 보통 삽입은 대부분의 상황에서 충분히 빠르며 빠른 대량 삽입을 원한다면 다중 삽입이 가장 좋은 방법은 아닙니다. 즉, Postgres COPY 또는 Mysql LOAD DATA INFILE이 몇 배 더 빠릅니다 .
ORM에 의 mysql 및 postgresql에 다중 삽입을 수행하는 추상화를 구현하려는 노력의 가치가없는 이유입니다. 몇 가지 의문점을 없애기를 바랍니다.
감사합니다,하지만 난' "플러시"call' 당 데이터베이스에 하나의 쿼리, 나는 각 INSERT 문에 대한 실행의 시간을 볼 수 있기 때문에 모르겠어요 . 즉, 각 INSERT 문은 DB에 대한 하나의 쿼리입니다. 내 질문을 업데이트했습니다. – Mikhail