그누보드 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/10정도의 속도차리가 약간 느린 상태 입니다.
그리고 그누보드의 경우 6만건부터 부하가 걸리는것이 보입니다.
혹시나 해서 기본 list를 불러오는 가장 핵심이 되는 query를 telnet상에서 돌려 봤습니다.
역시나 위에서 크게 차이가 나지 않는 시간이 체크 되었습니다.
그래서 index를 보니
그누보드
제로보드
이와 같은 차이가 있더군요...
우선 제 결론은 INDEX에 의한 LIST를 불로오는 차이라고 생각됩니다.
사실 공부를 해보다 보니 제로보드는 복수의 게시판을 생성해도 그누보드처럼 새로운 게시판 테이블을 생성하는게 아니라 한개의 게시판 테이블을 이용하더군요...
그래서 실제 데이터를 넣으면 어느정도의 속도 차이가 날까 했는데 제가 예상한 것과는 정 반대로 제로보드의 경우 복수의 게시판을 만들어도 LIST를 불러오는 시간은 동일 하던군요...
물론 이것은 튜닝에 대한 TIP을 전
우선 제가 테스트한 환경은 서버(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 | 6 | 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
1
댓글 7개
불당팩을 설치해서 테스트 해봐주세요.
제로만큼 속도를 올려야 하겠다는 의지가 샘솟네요. ㅎㅎ
http://www.sir.co.kr/bbs/board.php?bo_table=g4_pi_pds&wr_id=380
제로만큼 속도를 올려야 하겠다는 의지가 샘솟네요. ㅎㅎ
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가지 다 사용해야 비슷한 조건이 되지 않을까라는 생각이 듭니다.
제로보드는 단일 인덱스가 여러개 사용되었지만, 그누보드에서 사용된 컬럼들은 복합인덱스들 중 일부 컬럼만 사용이 되었으니 뭔가 조건이 조금 안 맞는거 같네요 ^^;;
원하는 데이터를 그리 긴시간을 들이지 않고 금방 추려낼 수 있습니다.
(물론 쿼리도 해당 인덱스 설정에 맞춰서 작성해야 합니다)
저도 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
로 해 보셨으면 합니다.
대신
select * from vip24_write_test2 where wr_is_comment = 0 and wr_id > 0 order by wr_id, wr_reply limit 0, 20
로 해 보셨으면 합니다.

제로 보드는 제가 보기에는 무척 많은 index를 가지고 있군요.
insert할 때는 부담이 될 듯합니다.
insert할 때는 부담이 될 듯합니다.
약 2만건 이상 게시물이 누적되면 슬슬 느려지기 시작하죠..
대안으로 생각한건 검색에서 사용하는 범위를 일반 리스팅에도 적용한거였습니다.
뒤끝이 좀 찜찜하지만 그럭저럭 만족합니다.
대안으로 생각한건 검색에서 사용하는 범위를 일반 리스팅에도 적용한거였습니다.
뒤끝이 좀 찜찜하지만 그럭저럭 만족합니다.