다른 분들은 게시판 count 어떻게 하시나요??
게시판의 테이블을 "select count(i) from XXX"라는 형식으로 하시나요?
아니면 따로 count 테이블을 생성해서 insert될때마다 트리거를 이용해서 숫자를 update 하시나요??
여러분들의 의견 듣고 싶습니다.
혹시 첫번째와 두번째 방법의 장단점에 대해서 아시는분,
그리고 어떤 경우에 적합한지에 대해서도 말씀해 주시면 정말 감사하겠습니다.
^^
그냥 count 해서 씁니다. 하루 게시판 페이지뷰가 100만 이어도 별 무리없네요.
대부분 첫번째 방법을 쓰지만 count()가 시스템에 큰 부담이 된다고 생각되면 두번째 방법을 쓰겠죠.
첫번째 방법이야 정확한 값을 얻을 수 있는 반면 I/O가 심해서 부하를 많이 주고 늦다는 단점이 있고
두번째 방법은 빠르게 카운트값을 얻을 수 있지만 정확하지 않을 수 있고 얼마나 다양한 조건에 해당하는 카운트값을 미리 계산해서 갖고 있을 수 있느냐 관건이겠지요.
이곳 DSN 게시판은 게시물 숫자와 관계된 것이 몇 종류 있습니다. 전체 게시물 숫자, 하위 쓰레드 게시물을 제외한 최상위 게시물 숫자, 오늘 작성된 게시물 숫자, 이런 것들이 게시물 통계 테이불에 저장되고 그것을 사용합니다. 물론 그 숫자 맞추기는 트리거로 움직입니다. 물론 게시물 검색 상태라면, 그 숫자는 의미가 없어지기 때문에, count(*)로 구하기는 합니다. 개인적인 생각으로는 PostgreSQL 에서는 count(*) 작업이 다른 db 보다 월등히(!) 떨어지기 때문에 개발자가 잘 선택하셔야합니다.
트리거를 이미 만들어 놓긴 했는데 적용해야 될지 말지 고민하던 중이었거든요. 트리거를 사용하는 방향으로 하려고 합니다. 댓글 감사합니다...^^