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

불당   
   조회 11762   추천 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 -
광주지입전문 (주)은하수물류
매출보증협약서. 배차업무협약서. 정직과 신뢰로 시작부터 끝까지 함께하는 은하수물류
광주지입전문 한진운수
운수법인, 지입차매매, 전국지입정보, 대기업물류, 정확한매물 정직한상담.
광주지입 이노픽스물류
전국지입매물! 운수법인, 대기업, 수도권, 지방권, 전액할부, 1대1상담.
파워링크 AD   클릭초이스등록


제목Page 1/4
2010-06   10998   불당
2011-01   15053   불당
2016-08   34575   불당
2016-08   4528   불당
2016-08   4489   불당
2016-08   4360   불당
2016-08   34575   불당
2015-10   5634   불당
2014-02   8682   불당
2014-02   8732   불당
2014-02   8791   불당
2013-06   11287   불당
2013-05   12749   불당
2013-05   11969   불당
2013-01   14121   불당
2011-12   16184   불당
2011-12   12479   불당
2011-09   13587   불당
2011-09   12151   불당
2011-06   12241   불당
2011-01   11763   불당
2011-01   14402   불당
2011-01   15053   불당