테스트 사이트 - 개발 중인 베타 버전입니다

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

· 6년 전 · 5090 · 11

게시판글이 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개로 하면

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

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 11개

근데 원래 코드를 쑤셔 넣으라는게 무슨 말일까요..

게시글 목록

번호 제목
23966
23963
23953
23949
23938
23935
23933
23928
23919
23918
23917
23910
23902
23901
23897
23894
23893
23891
23885
23872
23870
23862
23859
23853
23845
23838
23827
23819
23805
23801