backend/NestJS
[TypeORM] insert와 save
BK0625
2023. 1. 31. 10:27
반응형


TypeORM을 쓰다보면 데이터베이스에 데이터를 insert 해야될 때 어떤 걸 써야할지 고민을 할 때가 있다.
보통 구글에 검색하면 1차적으로 나오는게 .save() 인데
.save()는 기본적으로 select 작업을 한다.
그래서 해당 데이터가 있으면 update 작업을 하고 없으면 insert 작업을 한다.
(그러한 이유로 따로 update 작업을 할 때 .save()를 쓰면 불편할 때가 있다.)
.save() 를 쓰면 select 작업이 실행 되기 때문에 단순데이터를 저장하는데에도 많은 리소스를 사용하고 성능저하의 주 원인으로 꼽힌다.
그래서 이 부분을 제거하고 순수하게 insert 쿼리만 수행하는 기능이 바로 .insert() 이다.
그러면 불필요한 select 연산 없이 insert 쿼리를 수행할 수 있다.
따라서 insert하고 해당 데이터 값이 필요하다면 .save()를, insert 작업만 필요하다면 .insert()를 쓰면 좋을 거 같다.
공부하면서 정리한 내용이므로 틀린 부분이 있을 수 있습니다.
모든 지적 감사히 받겠습니다:)
반응형