[가격인하::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개
ㅋ
다른방법으로 ...
데이타를 나누는것이 초보에겐 어려우니...
그냥 새로운 테이블을 만들고....
오늘부터는 새로운 테이블에 저장...하는것으로...
그러면...오늘부터 다시 시작하니
매우 빠를거 같은데요....
딱히 많이 건드리지 않고....
하지만 저는 초보라 말만 이럴뿐...방법을 모른답니다.
새로 신설한 게시판(aaa) 글번호수도 원래 게시판이랑 똑같아보여요,,ㅋ
검색도 두개 게시판 전체로 검색되면 좋은데..이건 고수들이 만들어주세요
글이 1000개밖에 안되니 팍팍 뜨고 글쓰기도 팍팍 만족합니다~
2.
mysql에서
분리하고자 하는 wr_id 기준으로
delete from aaa where wr_id < 5000
반대로
delete from aaa_save where wr_id > 5000
하여 삭제
3.그리고 위의 팁과 같이 하면 되요
혹시나의 작업실수를 고려하여
aaa -> ccc로 한개 더 복사해놓고 작업하세요