[가격인하::580원 팁] 글이 많아 속도 느려질 때 -테이블 나눠쓰기 > 그누보드5 팁자료실

그누보드5 팁자료실

[가격인하::580원 팁] 글이 많아 속도 느려질 때 -테이블 나눠쓰기 정보

[가격인하::580원 팁] 글이 많아 속도 느려질 때 -테이블 나눠쓰기

본문

게시판글이 10만개 넘어가지 아주 역같이 느려지네요..

 

그래서 테이블을 두개로 나누어 페이징을 변경하여 쓰는 방법이에요,,,ㅋ

 

aaa테이블 1만개

aaa_save테이블 9만개로 나눈뒤에

 

lib/common.lib.php

 

 

if($bo_table=="aaa" || $bo_table=="aaa_save"){

 // 한페이지에 보여줄 행, 현재페이지, 총페이지수, URL
function get_paging($write_pages, $cur_page, $total_page, $url, $add="")
{
    //$url = preg_replace('#&page=[0-9]*(&page=)$#', '$1', $url);
    $url = preg_replace('#&page=[0-9]*#', '', $url) . '&page=';

    $str = '';
    if ($cur_page > 1) {

   $url = "../bbs/board.php?bo_table=aaa&page=";

        $str .= '<a href="'.$url.'1'.$add.'" class="pg_page pg_start">처음</a>'.PHP_EOL;
    }

    $start_page = ( ( (int)( ($cur_page - 1 ) / $write_pages ) ) * $write_pages ) + 1;
    $end_page = $start_page + $write_pages - 1;

    if ($end_page >= $total_page) $end_page = $total_page;

    if ($start_page > 1) 
        
    $url = "/bbs/board.php?bo_table=aaa_save&page=";
    
    $str .= '<a href="'.$url.($start_page-1).$add.'" class="pg_page pg_prev">이전</a>'.PHP_EOL;

    if ($total_page > 1) {
        for ($k=$start_page;$k<=$end_page;$k++) {
            if ($cur_page != $k)
                $str .= '<a href="'.$url.$k.$add.'" class="pg_page">'.$k.'<span class="sound_only">페이지</span></a>'.PHP_EOL;
            else
                $str .= '<span class="sound_only">열린</span><strong class="pg_current">'.$k.'</strong><span class="sound_only">페이지</span>'.PHP_EOL;
        }
    }

    if ($total_page > $end_page) 
$url = "/bbs/board.php?bo_table=aaa&page=";        
    
    $str .= '<a href="'.$url.($end_page+1).$add.'" class="pg_page pg_next">다음</a>'.PHP_EOL;

    if ($cur_page < $total_page) {


$url = "/bbs/board.php?bo_table=aaa_save&page=";

        $str .= '<a href="'.$url.$total_page.$add.'" class="pg_page pg_end">맨끝</a>'.PHP_EOL;
    }

    if ($str)
        return "<nav class=\"pg_wrap\"><span class=\"pg\">{$str}</span></nav>";
    else
        return "";
 

}

 

}else{

원래의 코드는 여기에 꾸겨넣어요~ ㅋ

}

 

 

aaa_save에서 aaa의 맨처음으로 온뒤에 처음이라고 안나오고 "이전"이라고 표시되는거는 다른 고수님이 알려줄거에요~

 

aaa는 500개만

aaa_save는 99500개로 하면

쌩쌩날아다닐거 가타요,,,안해봣지만...ㅋ

추천
2

댓글 11개

오~~ 기발한데요

다른방법으로 ...
데이타를 나누는것이 초보에겐 어려우니...

그냥 새로운 테이블을 만들고....
오늘부터는 새로운 테이블에 저장...하는것으로...

그러면...오늘부터 다시 시작하니
매우 빠를거 같은데요....
딱히 많이 건드리지 않고....

하지만 저는 초보라 말만 이럴뿐...방법을 모른답니다.
$list[$i][num]+99500; 해주면
새로 신설한 게시판(aaa) 글번호수도 원래 게시판이랑 똑같아보여요,,ㅋ
검색도 두개 게시판 전체로 검색되면 좋은데..이건 고수들이 만들어주세요

글이 1000개밖에 안되니 팍팍 뜨고 글쓰기도 팍팍 만족합니다~
1.관리자에서 게시판을 복사하세요 aaa ->aaa_save 이렇게요
2.
mysql에서
분리하고자 하는 wr_id 기준으로
delete from aaa where wr_id < 5000
반대로
delete from aaa_save where wr_id > 5000
하여 삭제

3.그리고 위의 팁과 같이 하면 되요

혹시나의 작업실수를 고려하여
aaa -> ccc로 한개 더 복사해놓고 작업하세요
전체 2,427 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

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