A supprimer svp
A supprimer svp
déjà faut savoir qu'en mode _dev c'est plus long qu'en prod car dans ce mode il y a une couche supplémentaire pour le debuggage comme la gestions des erreurs, logs, requêtes ...
tu fais un flush dans la boucle de suppression.
plutôt faire un persist dans la boucle et le flush faut le faire qu'une fois en dernier
peut être en faisant une requête native en sql (pas en objet comme tu fais actuellement) ça peut être plus rapide que de faire des remove dans une boucle.
comme ici
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $stmt = $this->getEntityManager() ->getConnection() ->prepare('select * from product where 1'); $stmt->execute(); $result = $stmt->fetchAll();
Doctrine2 n'est pas recommandé pour l'import/export massif de données. (cf sa propre documentation)
Tu devrais utiliser le component DBALConnection.
Bon après si t'as la flemme de changer tout ton code a cause de cet orm merdique je le conçoit, donc fait comme dukoid te l'a conseillé.
Par contre lors de mes expériences pro, on s'est rendu compte que les requêtes flushés étaient toujours gardées "en mémoire" par l'orm.
On a donc fait une boucle de persist, avec flush tous les 100 requetes, et des $em->clear toutes les 10 flushs je crois. Ca avait amélioré grandement les performances, mais depuis, on oublie l'orm pour les gros scripts :]
Partager