이 기사는 PHP에 대한 관련 지식을 제공합니다. 수백만 개의 데이터를 csv로 내보내고 1분 이상 oss에 업로드하는 방법을 주로 소개합니다. 관심 있는 친구들이 함께 살펴보시기 바랍니다.
요구 사항
- 특정 팀의 특정 사용자의 산책 기록을 csv 파일로 내보내야 하는 제품이어야 하며, 하나의 파일로 이루어져야 하며 속도가 빠르고 시간이 많이 걸리지 않아야 합니다.
문제
- 로그는 종종 많은 양의 데이터를 의미합니다.
- 파일로 가져오려면 데이터 볼륨이 크더라도 페이징 쿼리와 csv에 쓰는 것 외에는 문제가 해결되지 않습니다.
- 빠르고 시간도 짧습니다. 여러 프로세스를 통해 여러 파일을 내보내는 문제도 해결할 수 있지만 요구 사항은 하나의 파일입니다!
해결 방법
- 내보낼 총 데이터 양을 먼저 쿼리하세요
- 일괄 대기열에 넣어 여러 소비자 쿼리를 시작하고 여러 csv에 쓰세요.
- 큐에 게시할 때 각 큐에서 작성한 특정 csv 경로와 파일 이름을 기록하세요.
- 배치 큐의 특성을 이용하여 이전 단계에서 기록된 여러 csv를 실행이 완료되면 순서대로 하나의 csv로 병합합니다.
- 병합이 완료된 후 병합 전에 여러 csv를 삭제하고 병합된 csv를 유지합니다. oss에 업로드하세요
Results
500,000개 이상의 데이터를 테스트한 후 배치 큐의 각 큐에 50,000개의 데이터가 할당되어 처리가 완료됩니다. 서버가 얼마나 빨리 시작될 수 있는지에 따라 다릅니다. 테스트할 때 자동 전략을 사용했을 때 동시에 실행되는 소비자 수는 8명이었습니다.
추천 학습: "laravel 비디오 튜토리얼"
위 내용은 여러 프로세스를 통해 수백만 개의 데이터를 1분 안에 csv로 내보내고 oss에 업로드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!