이러한 대용량 파일은 PHP로 처리할 수 없습니다. 파일을 처리하려면 PHP가 먼저 해당 파일을 메모리로 읽어 들여야 하며, 각 스크립트가 사용할 수 있는 메모리는 PHP 구성 파일의 memory_limit와 관련됩니다. 메모리가 충분히 크면 무제한으로 설정하여 시스템의 최대 메모리를 사용할 수 있습니다.
권장되는 해결 방법은 먼저 파일을 작은 파일로 자르고, sed와 같은 쉘 프로그램을 사용하여 파일을 특정 크기(PHP 메모리 크기에 따라 크기가 결정됨)에 따라 여러 개의 작은 파일로 자른 다음 처리하는 것입니다. PHP로요.
깜짝! 이렇게 많은 양의 데이터를 처리하려면 여전히 sqlite가 사용됩니다. 게다가 메모리에 한 번에 수십 기가바이트를 읽어들이면 메모리가 실제로 수십 기가바이트가 아닌 이상 메모리가 확실히 터질 것입니다. 이 데이터베이스를 분할하거나 다른 유형의 데이터베이스 처리로 변환하는 것이 좋습니다.
이러한 대용량 파일은 PHP로 처리할 수 없습니다. 파일을 처리하려면 PHP가 먼저 해당 파일을 메모리로 읽어 들여야 하며, 각 스크립트가 사용할 수 있는 메모리는 PHP 구성 파일의 memory_limit와 관련됩니다. 메모리가 충분히 크면 무제한으로 설정하여 시스템의 최대 메모리를 사용할 수 있습니다.
권장되는 해결 방법은 먼저 파일을 작은 파일로 자르고, sed와 같은 쉘 프로그램을 사용하여 파일을 특정 크기(PHP 메모리 크기에 따라 크기가 결정됨)에 따라 여러 개의 작은 파일로 자른 다음 처리하는 것입니다. PHP로요.
한 줄씩 읽기, PHP에는 이 기능이 있습니다. 한 번에 3줄을 읽습니다. 그러나 SQLite는 로컬 데이터베이스이고 읽는 것은 드라이버의 문제입니다. 단지 모두 인쇄하지 마세요. 단번에
데이터를 MYSQL로 전송한 다음 읽기 및 쓰기를 위해 PHP에 제공해야 합니다. SQLite는 원래 대용량 데이터를 처리하는 능력이 낮은 작은 파일 데이터베이스입니다.
깜짝! 이렇게 많은 양의 데이터를 처리하려면 여전히 sqlite가 사용됩니다.
게다가 메모리에 한 번에 수십 기가바이트를 읽어들이면 메모리가 실제로 수십 기가바이트가 아닌 이상 메모리가 확실히 터질 것입니다.
이 데이터베이스를 분할하거나 다른 유형의 데이터베이스 처리로 변환하는 것이 좋습니다.
PHP의 텍스트 처리는 이상적이지 않고 매우 느립니다. mysql에 진입한 후 처리하는 솔루션은 가능하지만 시간이 더 많이 걸립니다.
참고해서 확인해보세요
sqlite는 잘 모르겠지만 이렇게 큰 파일을 직접 처리하기는 어려울 것 같아요. 그러나 일반적인 생각이 있습니다. 그냥 해체합니다. 도서관에 따르면. 시계라던가.
SQLite 파일이므로 데이터베이스 읽기->프로세스->저장을 클릭하시면 기본적으로 sqlite를 바로 사용할 수 있습니다.
sqlite를 Mysql로 변환한 후 인덱스를 최적화하면 문제가 없을 것입니다.
본 상품을 참고해주세요