SMALL
Load Data 란?
파일 그 자체로 DB 테이블에 데이터를 넣는것이다. 아래의 속도 차원이 다르다.
속도: 대량의 데이터를 빠르게 로드할 때 "LOAD DATA"는 "INSERT"보다 훨씬 빠릅니다.
"LOAD DATA"는 대부분의 데이터베이스 시스템에서 최적화되어 있어, 대량의 데이터를 빠르게 삽입할 수 있습니다.
공식 사이트 : https://dev.mysql.com/doc/refman/8.0/en/load-data.html
LOAD DATA
[LOW_PRIORITY | CONCURRENT] [LOCAL]
INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[PARTITION (partition_name [, partition_name] ...)]
[CHARACTER SET charset_name]
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number {LINES | ROWS}]
[(col_name_or_user_var
[, col_name_or_user_var] ...)]
[SET col_name={expr | DEFAULT}
[, col_name={expr | DEFAULT}] ...]
예시
LOAD DATA LOCAL INFILE '{file_name}'
INTO TABLE {table_name}
CHARACTER SET utf8
FIELDS
TERMINATED BY '{field_terminator}' # 각 필드 구분 문자 (예: CSV라면 컴마)
OPTIONALLY ENCLOSED BY '"' # 필요할 경우, 따옴표(")로 구분
LINE TERMINATED BY '\n'
IGNORE 1 LINES # 제목이 포함된 첫 번째 줄은 생략
(col1, col2, ... ) # 컬럼명
Insert vs Load data
항목 | LOAD DATA | INSERT |
속도 | 대량의 데이터 로드에 매우 빠름 | 대량의 데이터에 비해 느림 |
유연성 | 제한적 (특정 파일 형식 등) | 데이터 삽입 방식, 형식, 값에 대한 세밀한 제어 가능 |
보안 | 외부 파일 로드로 보안 위험 있음 | 직접 명령 사용으로 외부 위험 최소화 |
효율성/간편성 | 대용량 파일 로드에 효율적/간단 | 각각의 INSERT에 오버헤드 있음 |
데이터 변환 | 데이터와 테이블 구조 불일치 시 문제 | 데이터 조정/수정 가능 |
일관성 | 제약조건 검사 없음 | 데이터베이스 제약조건과 함께 사용 가능 |
반응형
LIST
'DB' 카테고리의 다른 글
PostgreSQL만의 함수 to_tsvector(), to_tsquery() (0) | 2023.09.07 |
---|---|
PostgreSQL vs MySQL (0) | 2023.09.03 |
MySQL vs PostgreSQL (0) | 2023.08.08 |
기본 SQL 문 정리(3) - select, update, delete (0) | 2023.04.24 |
기본 SQL 문 정리(2) - create, Insert (0) | 2023.04.23 |