sql count와 별도로 저장하는거 속도차이가 어떨까요?
본문
sql에서 count로 db량을 측정하는것과 별도 테이블을 만들어서 읽은것 속도차이가 많이 날까요?
예를 들자면, count(mb_id)처럼 게시판에 글쓰기를 한 회원수와 별도 테이블에 회원이 게시판글쓰기할때마다 write+1 로 등록후에 조회하는것과 차이가 어느정도 나타나는지와 장단점을 알고 싶습니다.
고수님들의 고견 부탁드립니다~
답변 3
phpmyadmin 에서 query 를 실행해보시면 응답 속도가 있습니다.
전체 count()*) 는 실제로 별다른 부하가 없이 불러옵니다.
굳이 별도 테이블을 만들 필요는 없을것 같네요.
단, 조건이 붙는다면, 그 부분은 해당 필드를 index 걸로 테스트해보고
응답속도가 느리다면 별도 테이블에 저장하는걸 권합니다.
데이터 양이 많아 진다면 별도 테이블에 게시물 카운트를 넣어주는게
select 시마다 count 를 매번 구하는 것보다 훨씬 빠르긴 할거에요
키값관리를 위한것이라면
mysql 에서 컬럼에 auto_increment를 적용하는게 나을것이고
postgresql 이나 oracle에서는 sequence로 등록후 nextval 값을 관리하는게 효과적입니다.
단지 현재의 갯수를 구하는것은 count(컬럼) 하는건 컬럼에 index만 걸려있거나 * 로 전체카운트라면
속도저하가 거의 없을겁니다.
답변을 작성하시기 전에 로그인 해주세요.