(취소) 코멘트가 많아서 너무 늦다? 그럼 튜닝을 해야지. ㅎㅎ

불당   
   조회 11327   추천 0    

phpmyadmin으로 보면 Sorting result 또는 Sending data에 꽤 오랫동안 머물러 있는 SQL 문장이 있는데
그게 어딘가 문득 궁금해졌습니다. 불당팩은 필요한 데이터를 골라서 가지고 오게 프로그램이 되어 있어서
해당 SQL에서 select 하는 데이터를 가지고 프로그램을 검색해보니, bbs/view_comment.php 입니다.
 
// 코멘트 출력
$select_sql = " wr_id, mb_id, wr_name, wr_parent, wr_option, wr_content, wr_trackback, wr_datetime, wr_ip, wr_comment, wr_comment_reply, wr_singo,
                wr_1, wr_2, wr_3, wr_4, wr_5, wr_6, wr_7, wr_8, wr_9, wr_10, wr_password ";
if ($board[bo_use_sideview]) {
    $select_sql .= " ,wr_email , wr_homepage ";
}
$sql = " select $select_sql from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 order by wr_comment, wr_comment_reply ";
$result = sql_query($sql);
 
별다른 것도 없는거 같은데, 이게 왜 느린 속도의 원인이 되었을까요????
빨간 글씨로 나타낸 것과 같이 order by 때문 입니다.
안그래도 많은 데이터를 가지고 와서 정렬하는 동안, 해당 테이블에는 Lock이 걸리게 됩니다.
 
여기서 지난번 게시판 검색의 종결자 코드에서 있었던, tmp table의 이슈를 다시 생각해 봅니다.
그냥 데이터를 tmp 테이블로 가지고 와서, tmp 테이블에서 정렬을 하면 어떤가 하는 것이죠.
그렇게 되면, 정렬을 하는 동안 (Sorting result) DB에 아무련 영향을 미치지 않을 수 있거든요.
 
이 방법의 장점은 코멘트가 많을 경우 효과적이라는 것이고,
단점은 모든 게시글 조회에 대해서 tmp 테이블을 만드는 것 입니다.
 
이런 경우에는 실환경에서 어느것이 더 효율적인지 실제 실행을 해보기 전에는 알수 없겠죠???
 
 
테스트 결과 : 너무 빈번한 tmp 테이블 생성은 오히려 속도에 더 문제를 일으킵니다.
코멘트 겟수를 게시글 DB에 넣고 있는 경우에는 100개 이상의 경우에만 tmp table을 쓰게
수정하면 효과가 있을 거 같습니다.
- opencode.co.kr -
한국오토모티브컬리지
51년전통 자동차실무교육, 최신장비실습장, 자격증취득, 해외견학, 취업 및 창업
암스오일한국공식수입원 머피아
AMSOIL한국공식수입원, 모터사이클, 와류흡배기, 멀티링크, 자동차부품제조
프리미엄튜닝샵 ARES
튜닝, 더벙커튜닝, 커스텀배기전문튜닝업체, 구조변경대행
파워링크 AD   클릭초이스등록


제목Page 1/4
2008-04   13242   불당
2011-01   14595   불당
2016-08   30487   불당
2016-08   3692   불당
2016-08   3786   불당
2016-08   3685   불당
2016-08   30487   불당
2015-10   4943   불당
2014-02   7958   불당
2014-02   8014   불당
2014-02   8048   불당
2013-06   10552   불당
2013-05   12100   불당
2013-05   11478   불당
2013-01   13630   불당
2011-12   15810   불당
2011-12   12108   불당
2011-09   13220   불당
2011-09   11764   불당
2011-06   11860   불당
2011-01   11328   불당
2011-01   14001   불당
2011-01   14595   불당