Database PostgreSQL에서 Bulk Insert와 Conflict Update 사용하는 방법. (포스트그리에서 벌크 인서트와 중복…
페이지 정보
본문
안녕하세요. 엔지엠소프트웨어입니다. PostgreSQL(포스트그리 데이타베이스)에서 대량의 데이타를 Insert(인서트)할 때 퍼포먼스(Performance, 성능) 개선을 위해 벌크 인서트(Bulk Insert)를 사용합니다. 이 때 이미 만들어진 쿼리(Query)문은 아래와 같을겁니다.
보통 이 쿼리를 만들 때 아래와 같이 반복하면서 처리할겁니다.
이 때 이미 등록된 사용자라면 정보를 갱신하고, 신규 사용자는 추가해야 합니다. 아래 쿼리는 중복된 사용자라면 추가하지 않도록 처리하고 있습니다.
on conflict ... do update를 사용하면 중복된 데이타를 특정 컬럼만 업데이트할 수 있습니다.
일반적으로 update set 이후 데이타는 C#의 경우 직접 내용을 넣을 수 있는데요. 벌크 인서트와 같은 환경에서는 이게 불가능합니다. 사용자마다 데이타가 다르기 때문이죠. 그래서, PostgreSQL에서 제공하는 upsert(update, insert 합성어)를 사용해서 처리해야 합니다. EXCLUDED는 삽입하려는 항목이 포함된 가상 테이블을 의미합니다. 이 테이블의 데이타로 업데이트할 수 있습니다.
개발자에게 후원하기
추천, 구독, 홍보 꼭~ 부탁드립니다.
여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~
감사합니다~
추천0 비추천0
- 이전글파이썬 실행 파일 만들기. (pyinstaller, exe) 22.09.15
- 다음글인스타그램 업로드용 이미지에 내 로고 넣는 매크로 만들기. (Create a macro to put your logo on an image for upload to Instagram.) 22.09.02
댓글목록
등록된 댓글이 없습니다.