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

불당   
   조회 11687   추천 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 -
뉴질랜드간강식품 머치모어탑3
GMP생산, 식약청인증! 녹색입홍합 함유 상어연골 글루코사민, 20% 할인이벤트중
명절선물도 고르다선식과 함께
선식추천선물세트, 가족선물,추석선물,명절선물, 건강선물세트,고급스러운선물세트
럭셔리인사선물 더과일바구니
전품목5%적립,전국2-3시간무료배송, 계산서발행, 법인/신용카드전화결제 OK
파워링크 AD   클릭초이스등록


제목Page 1/4
2010-04   12055   불당
2011-01   14967   불당
2013-05   12645   불당
2016-08   4405   불당
2016-08   4368   불당
2016-08   4241   불당
2016-08   34014   불당
2015-10   5541   불당
2014-02   8596   불당
2014-02   8644   불당
2014-02   8693   불당
2013-06   11192   불당
2013-05   12645   불당
2013-05   11891   불당
2013-01   14037   불당
2011-12   16101   불당
2011-12   12407   불당
2011-09   13511   불당
2011-09   12064   불당
2011-06   12164   불당
2011-01   11688   불당
2011-01   14322   불당
2011-01   14967   불당