안녕하세요. 성능과 관련하여 궁금한점이 있어서 문의드립니다....
CSV 파일을 읽어 DB에 데이터를 넣는 배치를 만든다고 했을때..
CSV파일에는 기존 테이블에 존재하는 데이터가 항상 중복으로 들어있어 (대략 CSV파일의 반이 중복 데이터) 적재 시 비교를 한뒤 처리를 해줘야 합니다.
CSV 파일은 약 100만건, DB 테이블 데이터는 1000만건정도 있습니다... 매일 배치를 돌려야 해요..
제가 생각하는 방법은 2가지 방법이 있는데.. 둘중 어느것이 나을까요????..
1. Merge into 방법으로 처리하는 방법
모든 로우의 데이터를 select 비교한 뒤 update 또는 insert 하는 방법
2. Temp table을 이용하는 방법
1) temp 테이블 데이터 truncate
2) temp 테이블에 CSV 파일 insert
3) temp 테이블과 원본 테이블 조인하여 원본 테이블의 중복 데이터 삭제
4) temp 테이블 데이터 원본 테이블에 insert 하는 방식