PHP/MySQL을 사용하여 CSV 데이터 가져오기: 문제 해결 및 최적화
이 문서에서는 PHP/MySQL을 사용하여 CSV 데이터를 MySQL로 가져오는 것과 관련된 문제 해결 및 최적화 문제를 다룹니다. PHP.
우려사항과 해결책:
1. 0으로 표시된 텍스트:
CSV 파일이 fgetcsv에 지정된 올바른 구분 기호를 사용하고 있는지 확인하세요. 데이터베이스의 "text" 열의 데이터 유형을 확인하십시오. 텍스트 형식으로 설정하지 않으면 가져온 데이터가 잘릴 수 있습니다.
2. 따옴표로 묶인 데이터:
CSV 파일의 데이터가 따옴표로 묶인 경우 enclosed_by 매개변수를 사용하여 fgetcsv에서 이를 지정할 수 있습니다. 이렇게 하면 가져온 데이터에서 따옴표가 제거됩니다.
3. 헤더 줄 무시:
헤더 줄을 무시하려면 데이터 가져오기를 시작하기 전에 fgets 함수를 사용하여 CSV 파일의 첫 번째 X 줄을 읽고 삭제합니다.
4. 데이터 형식 보존:
MySQL은 기본적으로 데이터 형식을 보존합니다. 소수 값은 데이터베이스로 가져온 후에도 소수로 유지됩니다.
5. 실행 시간 제한:
"최대 실행 시간 초과" 오류가 발생하는 경우 PHP 구성(php.ini)에서 max_execution_time 설정을 늘려보세요. 또는 가져오기 프로세스를 더 작은 배치로 나누어 서버의 로드를 줄이세요.
최적화:
LOAD DATA INFILE 기능 사용:
MySQL은 CSV 파일을 직접 가져올 수 있는 LOAD DATA INFILE 기능을 제공합니다. 루핑이나 파싱 없이 데이터베이스를 생성합니다. 이 방법은 PHP 루프를 사용하는 것보다 훨씬 빠릅니다.
LOAD DATA INFILE 사용 예:
<?php $query = <<<EOF LOAD DATA INFILE '$fileName' INTO TABLE tableName FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' (field1,field2,field3,etc) EOF; $db->query($query); ?>
LOAD DATA INFILE을 활용하면 CSV 가져오기 프로세스를 간소화할 수 있습니다. , 성능을 향상시키고 리소스 소비를 줄입니다.
위 내용은 PHP를 사용하여 CSV 데이터를 MySQL로 효율적으로 가져오고 문제를 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!