대량 데이터 적재 시 Primary Key는 성능에 영향을 줄까?
글쓴이: Manni Wood2025년 6월 13일 여러분께 퀴즈 하나 드릴게요.Postgres에서 빈 테이블에 대량의 데이터를 가장 빠르게 적재하는 방법은 무엇일까요? 2번을 고르셨다면, 아마 Postgres 공식 문서의 “Populating a Database” 페이지를 읽으셨거나, 그에 상응하는 실전 경험이 많으신 분일 겁니다. 저도 예전에 비슷한 경험이 있습니다. 두 개의 유사한 테이블에 데이터를 적재하는 일이 있었는데, 하나는 순식간에 끝났고 다른 하나는 터무니없이 느렸죠. 알고 보니 느렸던 테이블은 인덱스를 미처 제거하지 않은 상태였습니다. 그 실수를 고친 후 작업은 잘 마무리했지만, ‘제약 조건을 그대로 두면 성능이 엄청나게 떨어진다’는 교훈은 지금도 생생히 기억납니다. 그런데 얼마 전, 저희 EDB의 Data Migration Service에서도 사용하는 Debezium이라는 도구에서 흥미로운 권장사항을 발견했습니다.“대량 데이터 적재 시 테이블의 모든 제약 조건을 제거하되, Primary Key만은 그대로 두라”는 것이었죠. […]