쿼리 최적화 질문!

안녕하세요 점프 투 플라스크를 통해 공부하면서 앱을 개발하고 있습니다!

앱을 개발하다 보니 쿼리를 날리는 방식에 대해 많이 고민하게 되는데요, 어떠한 방법이 더 좋을지 궁금하여 질문 드립니다.

다음과 같은 상황을 가정하여 두 가지 방법을 작성해보겠습니다.

상황: 게시물 리스트 10개를 내보내는 API에서 게시물에 달린 댓글 수, 좋아요 수 등을 함께 보내주어야 함.

쿼리 1: 게시물, 댓글, 좋아요 테이블 등을 outer join과 func.count를 이용하여 쿼리를 진행한 후에 적당한 후처리를 한 후에 내보낸다.

쿼리 2: 데이터베이스에서 게시물을 먼저 불러오고 for 문으로 게시물마다 댓글 수, 좋아요 수 등을 각각 쿼리하여 저장 후에 내보낸다.

저는 ORM과 쿼리문을 복잡하게 작성하는 것 보다는 서버에서 처리하는 방식을 택하고 있지만, DB 컴퓨팅 능력을 적절히 활용하지 않고 쿼리를 효율적으로 하지 않는 것인지 의문이 듭니다.

감사합니다!

pgb1227 86

2021년 5월 27일 7:49 오후

+1 저라면 쿼리1 번 방식으로 하겠습니다. 1번 방식은 쿼리1번이면 되는데 2번 방식은 (데이터수 * 필요한 항목) 만큼의 추가 쿼리가 필요하기 때문에 성능차이가 많이 날것 같습니다. - 박응용님, 2021년 5월 27일 8:42 오후 추천 , 대댓글
목록으로