mysql - PHPExcel 가져오기 10,000개의 데이터 연결 시간 초과
世界只因有你
世界只因有你 2017-05-16 12:59:12
0
4
1044

이제 막 PHP를 배운 개발자는 phpexcel을 사용하여 데이터베이스에 10,000개의 레코드(43개의 열이 있는 레코드 1개)를 삽입해야 합니다. 각 데이터 조각이 데이터베이스에 존재하는지 확인하세요. 존재하지 않는 경우 계속해서 원본 데이터를 삽입하고 업데이트하고, 그렇지 않으면 레코드를 건너뜁니다.
현재 상황은 2,000개의 데이터를 가져오는 데 20초 이상이 소요되는 현상입니다. 10,000개의 데이터를 가져오는 경우 500 오류가 발생하여 업로드된 파일이 있는 디렉터리에서 파일을 찾을 수 없습니다. 저장됩니다. `$result=move_uploaded_file($_FILES'inputExcel',$uploadfile);

으아악

여기에서는 행과 열의 수를 얻을 수 없습니다. 코드에 Set_time_limit=0이 추가되었으며, 메모리가 128M으로 변경되었습니다. 지도 요청

世界只因有你
世界只因有你

모든 응답(4)
伊谢尔伦

메모리가 가득 차 있어야 합니다. Yield 반복을 사용하여 매번 삽입되는 항목 수를 제한할 수 있습니다. 실제로는 코루틴입니다.

大家讲道理

10,000개의 데이터를 한 번 가져오면 시간이 초과되고 서버에 과도한 부하가 발생합니다. 이러한 종류의 빅 데이터 가져오기는 비동기 방식으로 완료할 수 있습니다. 사용자를 기다리게 하지 마세요. 대신 코루틴 사용을 고려할 수도 있습니다.

漂亮男人

업로드된 파일 이름을 대기열에 추가합니다. 대기열에서 파일 이름을 읽고 가져올 파일을 여는 스크립트를 crontab 예약 작업에 추가하거나 서비스로 작성합니다.

为情所困

csv이기 때문에 PHPExcel을 사용할 필요가 없습니다. 이 오픈소스 라이브러리는 이전에 이 라이브러리를 사용했는데 https://packagist.org/package... (PHP7만 지원하는 것 같습니다) 데모는 작성하지 않겠습니다. 문서에서 직접 찾아보도록 하겠습니다. 스트레스 없이 수십만 개의 항목을 가져올 수 있습니다. 감사합니다.
또 다른 하나인 https://packagist.org/package...를 소개합니다. 질문자가 먼저 csv가 무엇인지 이해하도록 제안합니다. 가장 효율적이고 가벼운 csv 가져오기 클래스를 직접 작성할 수도 있습니다. .

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿