개발 Q&A

제목 서버 부하에 대해서 갑자기 궁금한 것이 있어서 올립니다.
글쓴이 거친보노보노 작성시각 2014/01/08 10:01:48
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 12662   RSS
디비에서 모든 데이터를 가공하는 방법과 컨트롤러에서 데이터를 가공하는 방법 두가지 방식에 대해서 어떠한 것이 좋은지 여쭙고 싶습니다.

첫번쨰로
서버 모델에서는 재사용이 쉽게 무조건 데이터 베이스는 데이터의 거의 대부분을 어레이로 컨트롤러에 넘겨 줍니다.
컨트롤러에서 그 데이터를 가지고 요리해서 값을 찾아내는 방식입니다.
이경우는 모델의 펑션이 별로 없고 컨트롤러 펑션이 복잡해집니다.
 
두번째로
서버 모델에서는 최소한의 데이터만 컨트롤러에 넘겨줍니다.
디비에서 대부분 다 걸러주고 결과값만 컨트롤러에 스트링이나 Array로 데이터를 넘겨주는 방식이죠
이경우는 모델의 펑션이 엄청 많고 컨트롤러 펑션이 간단해 집니다.


이 두가지 경우에 대해서 서버의 속도와 부하에 대해서 어떠한 것이 좋은지 나쁜지 알고 싶습니다.
제생각에는 디비에서 데이터를 가공하는 것이 속도면과 부하면에서 이득이 될꺼라고 생각되는데 어떠한지요??

 다음글 stdClass 관련해서 문의 드립니다... (5)
 이전글 문자셋 질문드립니다.. (2)

댓글

거친보노보노 / 2014/01/08 11:04:48 / 추천 0
 추가사항으로 모바일앱과도 통신합니다.
변종원(웅파) / 2014/01/08 11:15:44 / 추천 0
우선 웹과 db 서버가 분리되어 있다는 가정하에 답변합니다.

리포트 같은 것은 db 파워만 가지고 힘든 경우가 있어서 최대한 슬로우쿼리가 되지 않을 정도까지
db에서 처리해서 넘기고 컨트롤러에서 배열 검색 또는 연산을 통해 처리하기도 합니다.

정답은 없는 것 같습니다.

db에서 모두 처리하도록 해놨는데 호출 빈도가 빈번해져서 전체 시스템에 영향을 미친다면
적당 선까지 db에서 처리하고 나머지는 웹서버 컨트롤러에서 처리하도록 하여 분산을 해야겠죠.

어느 한쪽에 모는 것은 서비스 자체에 문제가 될 소지가 있어서 적정 선에서 분배를 하는 것이 좋습니다.
(슬로우쿼리 쌓임 -> db 먹통 -> 웹 먹통)

 
거친보노보노 / 2014/01/08 13:55:57 / 추천 0
적정선을 찾는 것이 가장 중요하겠군요!

설계를 할 때 많은 도움이 될 것 같습니다. 감사합니다!