
내 기준 굉장히 많은 양의 데이터였던 약 20만 건의 데이터 ..
이 엑셀 파일을 어떻게 효율적으로 DB에 넣을 수 있을 지 고민하게 되었다.
처음에는 프론트 단에서 파일을 스트링으로 읽고 배열에 나누어 담아
백 단으로 보내는 방법을 생각하고 구현했다.
나의 부족한 그램은 버티지 못하고
STS가 굉장히 힘들어했다 !!!
그래서 열심히 구글링 하고 찾아낸 방법 !
파일을 저장하고 저장 된 파일을 읽어와서 DB에 저장하기 !!
MyBatis xml 작성 예시
<insert id="fileDbInsert" parameterType="string">
LOAD DATA LOCAL INFILE #{FILE_PATH}
INTO TABLE ${TBL_NM}
COLUMNS TERMINATED BY '|'
IGNORE 1 ROWS
</insert>
저장된 곳의 파일 주소, 입력할 테이블 이름, 컬럼 구분자 설정해주면
대용량 데이터도 금방 입력되는 것을 확인할 수 있다 :)
엑셀 파일을 CSV 형식으로 변환하기 (EXCEL to CSV)
엑셀 파일 실행 - 파일 - 내보내기 - 파일 형식 변경 - CSV - 다른 이름으로 저장


실행 중인 파일을 종료한 후 해당 파일 우클릭 - 연결 프로그램 - 메모장 선택

구분자로 분리된 내용 확인 가능

파일 - 다른 이름으로 저장 - 인코딩을 UTF-8 로 지정 후 저장하면 끝 !


CSV 컬럼 구분 기호(구분자) 변경



엑셀 옵션도 함께 변경해주면 된다.
엑셀 실행 - 파일 - 옵션 - 고급 - 시스템 구분 기호 사용 체크

< 참고 문서 >
https://mariadb.com/kb/en/load-data-infile/
LOAD DATA INFILE
Read rows from a text file into a table.
mariadb.com
'Database' 카테고리의 다른 글
| MySQL, MariaDB: GROUP_CONCAT (0) | 2024.01.31 |
|---|---|
| MySQL, MariaDB: 한 컬럼에 있는 문자열(String)을 SPLIT하여 여러 개의 행으로 만들기 (2) | 2024.01.31 |
| 프로그래머스 : 조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2023.03.23 |
| 프로그래머스 : 조건에 맞는 사용자 정보 조회하기 (0) | 2023.03.22 |
| 프로그래머스 : 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2023.03.20 |