我想用doctrine batch insert processing來優化插入大量的實體。問題出在Clear方法。它說這個方法分離了由EntityManager管理的所有實體。所以,我應該做的情況下,我有一個父實體,其中有許多孩子,每個孩子都有自己的孩子的,就像這樣:Doctrine EntityManager在嵌套實體中清除方法
- riseSession
- 軌道
- 點
- 軌道
因此,我已1個rideSession,3個軌道和每個軌道具有用於isntance 2 0 00分。我可以在上一個負責保存點的循環中使用批處理。但是,如果我使用清晰的方法,那麼如何設置父母的點數和曲目?清除方法會將它們分開,對吧?
你的問題是什麼?你有什麼?你想實現什麼?如果您現在將所有對象都放在內存中,爲什麼要使用這種批處理方法?這是爲了優化管理內存:當你的所有對象不能存儲在內存中的時候。所以你需要創建對象,然後在循環中分離所有實體(釋放內存)。它在PHP腳本中優化內存。 –
因此,如果我在內存中有40000個對象(從JSON解碼實體),那麼我可以肯定,當我調用$ em-> flush()服務器不會與OOM異常崩潰?因爲這是我從你的評論中瞭解到的。 – Tom