본문 바로가기
Programming/SQL

[MySQL] LOAD DATA INFILE 대용량 데이터 불러오기

by 코딩하는 금융인 2024. 7. 14.

안녕하세요.

오늘은 MySQL LOAD DATA INFILE 명령어에 대해 간단히 알아보겠습니다.

 

 MySQL 빅데이터 불러오기

 - LOAD DATA INFILE 명령어MySQL에서 대용량 데이터를 빠르게 테이블에 삽입하는 데 사용되는 매우 효과적인 방법임 - 일반적인 삽입문인 INSERT문보다 20배 가량 빠른 성능을 보임

 

▣ 기본 구문

ㅇ 옵션 설명

  - LOW_PRIORITY : 테이블을 읽는 동안 데이터 로드 작업 대기 상태

  - CONCURRENT : 데이터 로드 작업이 실행되는 동안 테이블에서 데이터를 읽을 수 있음

  - LOCAL : 클라이언트에서 파일을 읽을 때 사용됨

  - REPLACE | IGNORE : 중복 레코드 처리 방식 지정

  - FIELDS TERMINATED BY: 필드 구분자 지정 (보통 ',')

  -  ENCLOSED BY: 필드 값을 둘러싸는 문자 지정 (보통 '''')

  - LINES TERMINATED BY: 행 구분자 지정 (보통 '\n')

  - IGNORE number LINES: 지정된 수의 행 무시 (헤더 행 건너뛰기 위해 보통 1 지정)

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE table_name
[CHARACTER SET charset_name]
[FIELDS
    [TERMINATED BY 'string']
    [[OPTIONALLY] ENCLOSED BY 'char']
    [ESCAPED BY 'char']
]
[LINES
    [STARTING BY 'string']
    [TERMINATED BY 'string']
]
[IGNORE number {LINES | ROWS}]
[(column_name_or_user_var,...)]
[SET column_name = expr,...]

 

 - 또한, 보안으로 잘은 쓰이지 않으나 원격 URL에서도 데이터를 불러올 수 있음 (JDBC 드라이버 사용시)

-- 아무 예시 url 불러오기
LOAD DATA LOCAL
INFILE 'http://example.com/data.csv'
INTO TABLE customer
CHARACTER SET 'utf-8';

 

반응형

댓글