지금 제가 고민하고 있는 부분이네요.
저는 이렇게 처리를 했습니다.
PostgreSQL 명령어인 explain 이라는 명령으로 이용하면,
그 쿼리가 내부적으로 어떤 인덱스를 사용하고,
그 처리순서는 어떻고, 시간이 어느정도 걸렸는지에 대한
정보를 구할 수 있습니다.
게시판 구조가
일련번호: (절대번호) : primary key
제목:
작성자:
내용:
삭제: (삭제 undo를 위한 필드)
이렇게 되어있는데,
일반적인 쿼리,
select * from board where isdelete = 'f' order by num desc offset 0 limit 20
이런 방식으로 하니,
이상하게 아래의 글 처럼 4/8초 정도 걸리더군요.
그래서, 이래저래, 해본 결과,
인덱스를 하나 더 만들었습니다.
일련번호와, 삭제 필드를 함께 인덱스로 하는 것으로.
그리고 쿼리를
select * from board where no > 0 and isdelete = 'f' order by num desc offset 0 limit 20
이렇게 where 절 부분에서 일련번호가 0보다 크다는 쓸데없는 비교를 넣어주니,
속도는 여느 속도처럼 0.x 초 정도가 나오더군요.
핵심은 인덱스와, 쿼리인것 같습니다.
>>김윤한 님께서 쓰시길<<
::
:: PostgreSQL과 PHP를 연동해서 게시판을 만들었는데요..
:: 처음에는 문제가 없었으나.. 데이터가 2만건 정도 쌓이니까..
:: 속도가 현저히 느려졌네요.. 반응속도가 4~5초정도 걸리는데요..
:: 이 속도를 줄일 퍼포먼스 튜닝 방법이 없을까요?
:: 일단 각 int필드에 CREATE INDEX를 해주기는 했는데..
:: 그로 인한 속도 향상은 상당히 미미한 수준입니다.. =_=;;
:: 고수님들의 답변 부탁드립니다..T.T
::
|