PHP8/Symfony6 환경에서 일종의 멀티스레딩을 수행하고 싶은데 다음과 같이 작동합니다.
약 백만 행을 제공하는 원칙적인 요청을 하고 있습니다
행을 동시에 처리하기 위해 여러 병렬 프로세스를 만들고 싶습니다. 내 요청은 교리 개체를 제공하는 getResult()를 통해 이루어집니다. 개체 배열을 매개변수로 사용하여 스레드를 생성하는 방법이 있습니까? 그러면 내 "대기열"이 데이터로 채워질 때마다 스레드를 생성하시겠습니까?
"pthreads" 또는 "popen"에 대한 정보를 찾았지만 주제가 좀 오래되었기 때문에 여전히 관련성이 있는지 잘 모르겠습니다
이 경우 Doctrine이 수행하는 작업 중 하나는 데이터 콘텐츠로 클래스를 수화하는 것입니다. 따라서 수백만 개의 레코드가 모두 클래스로 변환되어 메모리에 보관됩니다. 따라서 몇 가지 제안 사항은 다음과 같습니다. p>
fetchAll
方法一次获取所有用户,但请注意,如果您的查询返回太多用户,则可能会耗尽内存。使用上面的while
루프를 사용할 수도 있습니다. 한 번에 한 명의 사용자만 메모리로 가져오므로 메모리 성능이 더 좋습니다.누군가 댓글을 달았듯이
를 사용할 수 있습니다.