인프런 커뮤니티 질문&답변

terry9611님의 프로필 이미지
terry9611

작성한 질문수

실전! Querydsl

sql로 처리할 때와 애플리케이션으로 처리할 때 기준이 어떻게 될까요?

작성

·

173

1

A테이블에서 a 칼럼 값과 B테이블에서 b 칼럼 값이 서로 일치하는 데이터를 dto로 만들고 페이징 처리를 해서 컨트롤러로 반환해야 합니다., querydsl로 sql 짜서 하는게 좋을까요? 아니면, A테이블 데이터 가져오고, B테이블 데이터 가져와서 애플리케이션(2중 for문 사용 or 2중 stream 사용)에서 비교해주는게 좋을까요?

참고로 A 테이블과 B테이블은 연관관계가 없습니다.

 

단, 비교 조건이 수시로 바뀔 수 있는 상황입니다.

어느게 더 유지보수하기 좋을까요?

 

  1. sql로 처리하면 비교 조건이 바뀔 때 마다 sql을 손봐야하잖아요? 그러면 유지보수도 힘들어지고, 비즈니스 로직이 sql에 녹아들어져 있는 것 같습니다. 또, 조인이 들어가서 속도도 많이 느릴 것 같습니다.

  2. 애플리케이션에서 처리하면, A 테이블을 조회할 때 데이터 건수가 몇 억 건수라고 가정할 때, 정제되지 않는 데이터가 다 조회되는거라서 조회만으로도 속도가 많이 느려지지 않을까 합니다.

 

추가로, sql로 처리할 때와 애플리케이션으로 처리할 때 기준이 어떻게 될까요?

 

 

 

 

답변 1

1

안녕하세요. terry9611님, 공식 서포터즈 OMG입니다.
.

아래 영한님의 답변을 참고해주세요.

https://www.inflearn.com/questions/184494

추가로 성능이 우선시 되는 상황에서 기준을 잡기 애매하다면 둘 다 진행하여 성능 테스트를 하여 결정하는 것이 좋을 것 같습니다.


감사합니다.

terry9611님의 프로필 이미지
terry9611

작성한 질문수

질문하기