그누보드 vs 제로보드 LIST에서의 속도에 대한 테스트 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

그누보드 vs 제로보드 LIST에서의 속도에 대한 테스트 정보

그누보드 vs 제로보드 LIST에서의 속도에 대한 테스트

본문

우선 제가 올린 글은 정식버전의 기본 설치 후 LIST 에서의 속도에 대한 테스트 일뿐이지 그 이상도 이하도 아닙니다.

우선 제가 테스트한 환경은 서버(CPU: P4 2.83, MEM:1G), PC(CPU:P4 3.0, MEM:1G) 이며
게시물당 하나의 크기는 text로만 11kb였습니다.

테스트는 1만건에서 - 10만건까지 1만건 단위로 글을쓴 후 list에서 불러오는 속도를 체크해 봤습니다.

 
그누보드 : 1개의 게시판에서 데이터 증가량에 대한
1만건 2만건 3만건 4만건 5만건 6만건 7만건 8만건 9만건 10만건
0.143158 0.279513 0.388981 0.514094 0.609539 12.95806 18.40596 19.64019 26.54542 30.01325
제로보드 : 1개의 게시판에서 데이터 증가량에 대한
1만건 2만건 3만건 4만건 5만건 6만건 7만건 8만건 9만건 10만건
0.013307 0.013101 0.013103 0.013419 0.014274 0.014517 0.013178 0.013416 0.012899 0.013686

위에처럼 기본 1만건에서 부터 그누보드가 1/10정도의 속도차리가 약간 느린 상태 입니다.
그리고 그누보드의 경우 6만건부터 부하가 걸리는것이 보입니다.
혹시나 해서 기본 list를 불러오는 가장 핵심이 되는 query를 telnet상에서 돌려 봤습니다.

그누보드 select * from vip24_write_test2 where wr_is_comment = 0 order by wr_num, wr_reply limit 0, 20
1만건 2만건 3만건 4만건 5만건 6만건 7만건 8만건 9만건 10만건
0.11 0.21 0.32 0.43 0.53 12.14 17.57 19.63 25.05 29.06
제로보드 select * from `xe_documents` as documents where (module_srl in (48)) order by list_order asc limit 0, 20
1만건 2만건 3만건 4만건 5만건 6만건 7만건 8만건 9만건 10만건
0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01

역시나 위에서 크게 차이가 나지 않는 시간이 체크 되었습니다.
그래서 index를 보니

그누보드
키 이름 종류 Cardinality 필드
PRIMARY PRIMARY wr_id
wr_num_reply_parent INDEX 없음  wr_num
wr_reply
wr_parent
wr_is_comment INDEX 없음  wr_is_comment
wr_id

제로보드
키 이름 종류 Cardinality 필드
PRIMARY PRIMARY 90003  document_srl
idx_module_srl INDEX 없음  module_srl
idx_category_srl INDEX 없음  category_srl
idx_is_notice INDEX 없음  is_notice
idx_is_secret INDEX 없음  is_secret
idx_readed_count INDEX 없음  readed_count
idx_voted_count INDEX 없음  voted_count
idx_blamed_count INDEX 없음  blamed_count
idx_comment_count INDEX 없음  comment_count
idx_trackback_count INDEX 없음  trackback_count
idx_uploaded_count INDEX 없음  uploaded_count
idx_member_srl INDEX 없음  member_srl
idx_regdate INDEX 없음  regdate
idx_last_update INDEX 없음  last_update
idx_ipaddress INDEX 없음  ipaddress
idx_list_order INDEX 없음  list_order
idx_update_order INDEX 없음  update_order
idx_module_list_order INDEX 없음  module_srl
list_order
idx_module_update_order INDEX 없음  module_srl
update_order
idx_module_readed_count INDEX 없음  module_srl
readed_count
idx_module_voted_count INDEX 없음  module_srl
voted_count
idx_module_notice INDEX 없음  module_srl
is_notice
idx_module_document_srl INDEX 없음  module_srl
document_srl
idx_module_blamed_count INDEX 없음  module_srl
blamed_count

이와 같은 차이가 있더군요...
우선 제 결론은 INDEX에 의한 LIST를 불로오는 차이라고 생각됩니다.

사실 공부를 해보다 보니 제로보드는 복수의 게시판을 생성해도 그누보드처럼 새로운 게시판 테이블을 생성하는게 아니라 한개의 게시판 테이블을 이용하더군요...
그래서 실제 데이터를 넣으면 어느정도의 속도 차이가 날까 했는데 제가 예상한 것과는 정 반대로 제로보드의 경우 복수의 게시판을 만들어도 LIST를 불러오는 시간은 동일 하던군요...

물론 이것은 튜닝에 대한 TIP을 전
추천
1

댓글 7개

불당팩을 설치해서 테스트 해봐주세요.
제로만큼 속도를 올려야 하겠다는 의지가 샘솟네요. ㅎㅎ
http://www.sir.co.kr/bbs/board.php?bo_table=g4_pi_pds&wr_id=380
프로그래머가 아니라 잘은 모르겠지만,
제로보드는 건수가 많아도 불러오는 시간이 변함이 없네요? 왜그런지 알고 싶지만, 깊이 들어가고 싶지는 않네요. ㅡㅡ;;
근데 개념자체가 데이타가 많으면 그만큼 검색시간이 오래걸리는게 일반적이지 않나요? ^^;;;
떼비님, 건수가 많더라도 인덱스 설정이 잘 되어 있다면 수백, 수천만건의 데이터속에서도
원하는 데이터를 그리 긴시간을 들이지 않고 금방 추려낼 수 있습니다.
(물론 쿼리도 해당 인덱스 설정에 맞춰서 작성해야 합니다)

저도 DB에 대해 잘 아는건 아닙니다만,
이 팁을 봤을때 그누보드의 select query에서 where에서 wr_is_comment 인덱스 2개 컬럼,
order by에서 wr_num_reply_parent 인덱스를 3가지 다 사용해야 비슷한 조건이 되지 않을까라는 생각이 듭니다.

제로보드는 단일 인덱스가 여러개 사용되었지만, 그누보드에서 사용된 컬럼들은 복합인덱스들 중 일부 컬럼만 사용이 되었으니 뭔가 조건이 조금 안 맞는거 같네요 ^^;;
select * from vip24_write_test2 where wr_is_comment = 0 order by wr_num, wr_reply limit 0, 20
대신
select * from vip24_write_test2 where wr_is_comment = 0 and wr_id > 0 order by wr_id, wr_reply limit 0, 20
로 해 보셨으면 합니다.
약 2만건 이상 게시물이 누적되면 슬슬 느려지기 시작하죠..
대안으로 생각한건 검색에서 사용하는 범위를 일반 리스팅에도 적용한거였습니다.
뒤끝이 좀 찜찜하지만 그럭저럭 만족합니다.
전체 7 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT