본문 바로가기
backend/NestJS

[TypeORM] insert와 save

by BK0625 2023. 1. 31.
반응형

.save()와
.insert()

 

TypeORM을 쓰다보면 데이터베이스에 데이터를 insert 해야될 때 어떤 걸 써야할지 고민을 할 때가 있다.

 

보통 구글에 검색하면 1차적으로 나오는게 .save() 인데

 

.save()는 기본적으로 select 작업을 한다.

 

그래서 해당 데이터가 있으면 update 작업을 하고 없으면 insert 작업을 한다.

 

(그러한 이유로 따로 update 작업을 할 때 .save()를 쓰면 불편할 때가 있다.)

 

.save() 를 쓰면 select 작업이 실행 되기 때문에 단순데이터를 저장하는데에도 많은 리소스를 사용하고 성능저하의 주 원인으로 꼽힌다.

 

그래서 이 부분을 제거하고 순수하게 insert 쿼리만 수행하는 기능이 바로 .insert() 이다.

 

그러면 불필요한 select 연산 없이 insert 쿼리를 수행할 수 있다.

 

따라서 insert하고 해당 데이터 값이 필요하다면 .save()를, insert 작업만 필요하다면 .insert()를 쓰면 좋을 거 같다.

 

 

 

 

공부하면서 정리한 내용이므로 틀린 부분이 있을 수 있습니다.

모든 지적 감사히 받겠습니다:)

반응형