-
[Typeorm] take skip VS limit offsetNest.js 2023. 7. 15. 17:04728x90
개요
클라이언트가 페이징 처리를 할 때 백엔드는 분명히 페이징 처리를 해야될 때가 온다.
그리고 orm을 typeorm 쓰고 있는 개발자라면 take를 쓸 것인지 limit을 쓸 것인지 고민해야될 때가 온다.친절하게도 typeorm에서 처리하는 방법을 제시하고 있다.
내용
typeorm을 보면 limit에서는 join을 할 경우 원하는 결과값이 나오지 않을 수 있다고 나와있다.
이유가 뭘까..?
https://stackoverflow.com/questions/68468192/difference-between-limit-and-take-in-typeorm
stackoverflow에서 찾아볼 수 있었다.
내가 이해한 바로는
limit은 select 당시에 limit을 먼저 실행한 후 join을 실행하기 때문에 원하는 값이 나오지 않는다는 것이다.
반면에 take은 먼저 join까지 적용하여 모든 select를 한 후에 mapping하여 페이징 처리를 한다는 것이 다른 점이였다.
결론
join이 없으면 limit을 사용하는 것이 효율적이지만 join이 있는 경우에는 take를 사용하자~
typeorm is trash...
728x90'Nest.js' 카테고리의 다른 글
NestJS에서 프로젝트 기본 세팅 및 사용하는 라이브러리 정리 (0) 2023.08.08 @Nest-cli 최신버전으로 업데이트 해주기 (0) 2023.07.18 Nestjs + typeorm에서 entity에 본인의 좋아요 속성 가져오기 (0) 2023.07.11 Nestjs에서 Google Oauth2구현 (0) 2023.07.07 Nestjs- Typeorm 0.3에서 migration 사용하기 (0) 2023.07.03