CSV 파일 데이터를 MySql 테이블에 대량 업로드하는 방법은 무엇입니까? LOAD DATA를 사용하는 매우 빠른 방법입니다.

PHPz
풀어 주다: 2024-08-19 16:40:13
원래의
340명이 탐색했습니다.

? 소개

아직도 "for" 또는 "while" 루프를 사용하여 행을 반복하고 데이터베이스에 삽입하고 계십니까? 아직도 .csv 파일을 읽고 MySQL 데이터베이스에 업로드하기 위해 별도의 코드를 작성하고 계십니까?

MySQL에서 제공하는 "LOAD DATA" 문을 사용하여 선형 논리에 "NO"라고 대답하세요. 줄을 최소화하고 성능을 크게 향상시키기 위해 코드 변경을 준비하세요.

MySql은 텍스트 파일에서 데이터를 읽고 최소한의 코드로 테이블에 삽입하는 매우 빠른 방법인 LOAD DATA 문을 제공합니다.

? LOAD DATA INFILE 문이란 무엇입니까?

MySQL 공식 문서에 따르면 LOAD DATA 문은 매우 빠른 방식으로 파일에서 데이터를 읽는 데 사용되며 DB를 여러 번 누르는 대신 단일 쿼리로 이 데이터를 테이블에 삽입할 수 있습니다. "INSERT INTO" 쿼리를 사용합니다.

MySQL은 명령문도 제공합니다 -> "SELECT…INTO OUTFILE"은 테이블에서 파일로 데이터를 읽는 "LOAD DATA"와 정확히 반대되는 작업을 수행합니다.

MySql에서 제공하는 mysqlimport 유틸리티는 내부적으로 서버의 LOAD DATA 문을 호출하여 데이터를 가져옵니다.

? 그것을 사용하는 방법?

위의 요점 조각은 일반적인 로드 데이터 문을 보여줍니다. 사용 가능한 모든 옵션은 위 코드에 언급되어 있습니다.

이제 .csv 파일을 읽고 해당 행을 호환되는 테이블에 삽입하는 간단한 예를 살펴보겠습니다.


간단한 예:

LOAD DATA INFILE ‘data.csv’ INTO TABLE db.my_table
로그인 후 복사

모든 필수 옵션이 포함된 간략한 예:

이 명령문이 작동하려면 CSV 파일의 형식이 적절해야 한다는 것은 말할 필요도 없겠죠?

자, 위의 명령문을 사용하면 10만 개 이상의 행이 포함된 .csv를 몇 초 만에 테이블로 가져올 수 있습니다.

이제 주목해야 할 몇 가지 중요한 사항:


위 명령문은 MySql 수준에서 실행되므로 소스 파일을 가져오기 위해 클라이언트에서 서버로 복사됩니다.

이로 인해 일부 보안 문제가 발생하므로 이 코드를 사용하는 동안 클라이언트-서버 연결이 안전한지 확인해야 합니다.

MySql 8.0에서는 LOCAL 사용 기능이 기본적으로 False로 설정되어 있습니다. 서버와 클라이언트가 LOCAL을 허용하도록 구성해야 하므로 일부 사용자는 권한 오류가 발생할 수 있습니다.

권한 오류가 발생한 경우
local_infile

:
SET GLOBAL local_infile = true;
로그인 후 복사
을 활성화하여 이를 재정의해야 합니다.

참고: 이 플래그를 재정의하는 것은 보안 솔루션이 아니라 위험을 수용한다는 사실을 인정하는 것입니다. 자세한 내용은 이 문서를 참조하세요.

?‍? 결론

MySql LOAD DATA 문은 매우 짧은 시간 내에 파일을 읽는 데 사용됩니다.

이 코드를 모든 백엔드 API와 함께 사용하여 소스 파일을 제공할 수 있습니다.

소스 파일은 모든 텍스트 파일일 수 있으며, 이 예에서는 .csv를 사용했습니다.

LOAD DATA LOCAL

은 소스 파일을 MySql을 통해 서버에 복사하므로 서버 측의 보안 조치가 구현되어야 합니다.

mysqlimport

유틸리티는 내부적으로 LOAD DATA 문을 사용합니다. 문에

1줄 무시

를 추가하면 CSV의 헤더를 무시할 수 있습니다.How to Bulk Upload CSV file data into MySql Table? A very fast way using LOAD DATA.

? 참조

공식 문서

위 내용은 CSV 파일 데이터를 MySql 테이블에 대량 업로드하는 방법은 무엇입니까? LOAD DATA를 사용하는 매우 빠른 방법입니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿