getResult 원칙 요청에서 PHP 병렬 처리 생성
P粉649990163
P粉649990163 2023-09-14 19:30:46
0
1
485

PHP8/Symfony6 환경에서 일종의 멀티스레딩을 수행하고 싶은데 다음과 같이 작동합니다.

약 백만 행을 제공하는 원칙적인 요청을 하고 있습니다

행을 동시에 처리하기 위해 여러 병렬 프로세스를 만들고 싶습니다. 내 요청은 교리 개체를 제공하는 getResult()를 통해 이루어집니다. 개체 배열을 매개변수로 사용하여 스레드를 생성하는 방법이 있습니까? 그러면 내 "대기열"이 데이터로 채워질 때마다 스레드를 생성하시겠습니까?

"pthreads" 또는 "popen"에 대한 정보를 찾았지만 주제가 좀 오래되었기 때문에 여전히 관련성이 있는지 잘 모르겠습니다

P粉649990163
P粉649990163

모든 응답(1)
P粉211273535

이 경우 Doctrine이 수행하는 작업 중 하나는 데이터 콘텐츠로 클래스를 수화하는 것입니다. 따라서 수백만 개의 레코드가 모두 클래스로 변환되어 메모리에 보관됩니다. 따라서 몇 가지 제안 사항은 다음과 같습니다. p>

  1. 대규모 쿼리에서는 getResult를 사용하지 마세요. 대신, 이 개체로 뭔가를 하고 싶다면 다음과 같이 페이지를 매기고 엔터티 관리자를 지워보세요.
으아악
  1. 직접 쿼리하려면 while을 사용하세요.
으아악

fetchAll 方法一次获取所有用户,但请注意,如果您的查询返回太多用户,则可能会耗尽内存。使用上面的 while 루프를 사용할 수도 있습니다. 한 번에 한 명의 사용자만 메모리로 가져오므로 메모리 성능이 더 좋습니다.

으아악

누군가 댓글을 달았듯이

를 사용할 수 있습니다.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!