bbs/new.php는 3개의 테이블을 join해서 정보를 가져 옵니다.
g4_borad_new, g4_board, g4_group.
join을 하는 것은 상당한 시스템에 부하를 주고 cache도 되지 않기 때문에
bbs/new.php를 실행할때마다 시스템은 허걱~허걱~ 거리고 있습니다.
여기서 가장 쉬운 g4_group을 보겠습니다.
이걸 왜 join 할까요?
한번에 정보를 다 가저오려구 그런거죠. 편해보려고.
그런데, SQL을 따로 한번 더 실행하면 어떻게 될까요???
굳이 join 할 필요도 없고, group 정보는 SQL에 의해 cache되어 서비스 됩니다.
실제 더 빠른 결과가 가능하게 되는거죠.
new.php에서 c.* 에 해당하는 코드를 모두 없애고,
최신글을 찾아내는 loop에 아래의 코드를 더하면 됩니다.
$gr_info = get_group($row[gr_id], "gr_subject");
$row[gr_subject] = $gr_info[gr_subject];
$row[gr_subject] = $gr_info[gr_subject];
그러면, g4_board의 경우는 어떻게 사용되고 있을까요???
아래와 같이 그룹별 게시판을 골라 내는 목적으로 사용이 되고 있습니다.
따라서, join을 없애는 것이 오히려 더 부적절할 수 있습니다.
if ($gr_id)
$sql_common .= " and b.gr_id = '$gr_id' ";
$sql_common .= " and b.gr_id = '$gr_id' ";
new.php에서는 g4_group만 join에서 제외 합니다.
영향이 작아보이지만, 3개의 테이블 join과 2개의 테이블 join의 차이는 큽니다.
- opencode.co.kr -