여러가지 누적정보 저장 , 보통 어떤식으로 하는게 좋나요?

qkrwncks593의 이미지

서비스 내에서 사용자의 행동에 대한 데이터를 누적한 정보를 사용할일이 많은데 이때 보통 정보를 어떻게 저장하는게 추후 데이터베이스가 대용량화 되었을때 문제없이 지속가능한 방법인지 궁금합니다.

예를들어 사용자가 페이지에서 글을 쓸때 누적 글쓰기 카운트가 +1 로 누적이 되어 저장되는데

프론트에서 이 정보를 가져올때 지속적으로 모든 사용자가 글을 쓴 리스트 테이블에서
누적정보가 필요할때 dbms 에서 제공하는 count() 연산을 해도 무방한지 아니면
사용자 통계 테이블을 만들어서 누적값을 따로 저장하는게 좋을지 궁금합니다.

물론 현재 저는 유저마다 통계 테이블에 레코드로 1:1 로 매칭해서 컬럼 자체에 누적하는게 좋다고 판단하고 있지만

보통 이러한 처리를 할때 어떻게 처리하는지 궁금합니다.

세벌의 이미지

어느 쪽으로 해도 상관 없을 듯.

jick의 이미지

DB에서 count 연산을 하게 되면 십중팔구 count해야 하는 대상의 갯수에 비례해 시간이 걸리게 되겠죠.

이를테면 누가 글을 오만 개 썼다면 DB가 오만 개의 row를 다 세고 있는 시스템이 되겠네요.

그런 의미에서 count를 따로 저장하는 것을 추천합니다.

* 뭐 사용자당 글이 열댓개 정도라면 사실 별 차이가 없겠습니다만...

alstjr7375의 이미지

대용량 시스템이라면

https://d2.naver.com/helloworld/1016
이렇게 하면 되지 않을까요?

규모가 작다면 지금처럼 써도 되구요