꾸준히 오래오래

데이터 엔지니어의 공부 곳간✏️

Programming/Node.js

[TypeORM] QueryBuilder에서 getRawMany시 skip and take 오류

zzi_yun 2023. 2. 11. 23:45

현재 진행하고 있는 사이드프로젝트에서 TypeORM QueryBuilder를 사용하여 작업 중에

getRawMany에서 skip, take가 작동하지 않는 상황을 마주했다.🤔

 

처음에는 쿼리의 문제인 줄 알고 쿼리빌더 결과로 나온 쿼리를 디버깅하다가

문제가 없는 것 같아서 검색하니..!

raw data에서는 작동하지 않는다는 사실을 알게 되었다.

그래서 해당 경우에는 limit, offset을 사용해야 한다. 

 

우선은 오류 수정을 위해 limit, offset을 사용했으나, 사실 해당 쿼리가 성능이 좋지 않음을 알고 있어서

페이지네이션 방식을 인덱스를 타도록 커서기반 방식으로 고치는 방향을 고려해야겠다.💪🏻

 

 

참고 자료

https://stackoverflow.com/questions/57819937/typeorm-select-all-rows-but-limit-25

https://github.com/typeorm/typeorm/issues/1768