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

관리자 로그인 시 로딩 시간이 딜레이 되는것은 왜그런가요 ? 채택완료

모몽 4년 전 조회 4,194

항상 그런것은 아니고 가끔 10초 이상 딜레이가 됩니다.

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

답변 6개

채택된 답변
+20 포인트
4년 전

하루 한 번 그런 거라면 bbs/db_table.optimize.php 파일이 실행돼서 그럴 수도 있습니다.

해당 파일을 살펴보면 접속자로그, 인기검색어, 최근게시물 등등.. 설정일이 지난 것들이 일괄 삭제되는데 사이트 규모가 좀 크면 영향이 있을 수도 있습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

모몽
4년 전
그런것 같네요. 딜레이 후 다시 로그인 하면 바로 되는거 보니,
그런데 자료가 얼마 안되는데도 그정도 처리시간이 소요된다면
sir 같으면 엄청나게 걸릴 것 같은데 그렇지는 않을테고
딜레이 줄이는 방법있을까요?

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

4년 전
sql_query(" OPTIMIZE TABLE `{$g5['board_new_table']}` ");

 

OTIMIZE TABLE 이라고 된거 다 주석 처리하시면 됩니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

모몽
4년 전
OTIMIZE TABLE 포함된 코드 라인을 모두

// sql_query(" OPTIMIZE TABLE `{$g5['board_new_table']}` ");

이런식으로 하면되나요?

이렇게 했을 때 문제는 없을까요?
설정일이 지난 데이타들 삭제하는 코드 같은데 삭제가 안된다든지요.

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

저도 똑같은 증상인데 ㅎㅎ

주석을 처리할 부분이 어디인가요?

도움 주시면 고맙겠습니다.

 

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

// 최고관리자일 때만 실행
if($config['cf_admin'] != $member['mb_id'] || $is_admin != 'super')
    return;

// 실행일 비교
if(isset($config['cf_optimize_date']) && $config['cf_optimize_date'] >= G5_TIME_YMD)
    return;

// 설정일이 지난 접속자로그 삭제
if($config['cf_visit_del'] > 0) {
    $tmp_before_date = date("Y-m-d", G5_SERVER_TIME - ($config['cf_visit_del'] * 86400));
    $sql = " delete from {$g5['visit_table']} where vi_date < '$tmp_before_date' ";
    sql_query($sql);
    sql_query(" OPTIMIZE TABLE `{$g5['visit_table']}`, `{$g5['visit_sum_table']}` ");
}

// 설정일이 지난 인기검색어 삭제
if($config['cf_popular_del'] > 0) {
    $tmp_before_date = date("Y-m-d", G5_SERVER_TIME - ($config['cf_popular_del'] * 86400));
    $sql = " delete from {$g5['popular_table']} where pp_date < '$tmp_before_date' ";
    sql_query($sql);
    sql_query(" OPTIMIZE TABLE `{$g5['popular_table']}` ");
}

// 설정일이 지난 최근게시물 삭제
if($config['cf_new_del'] > 0) {
    $sql = " delete from {$g5['board_new_table']} where (TO_DAYS('".G5_TIME_YMDHIS."') - TO_DAYS(bn_datetime)) > '{$config['cf_new_del']}' ";
    sql_query($sql);
    sql_query(" OPTIMIZE TABLE `{$g5['board_new_table']}` ");
}

// 설정일이 지난 쪽지 삭제
if($config['cf_memo_del'] > 0) {
    $sql = " delete from {$g5['memo_table']} where (TO_DAYS('".G5_TIME_YMDHIS."') - TO_DAYS(me_send_datetime)) > '{$config['cf_memo_del']}' ";
    sql_query($sql);
    sql_query(" OPTIMIZE TABLE `{$g5['memo_table']}` ");
}

// 탈퇴회원 자동 삭제
if($config['cf_leave_day'] > 0) {
    $sql = " select mb_id from {$g5['member_table']}
                where (TO_DAYS('".G5_TIME_YMDHIS."') - TO_DAYS(mb_leave_date)) > '{$config['cf_leave_day']}'
                  and mb_memo not regexp '^[0-9]{8}.*삭제함' ";
    $result = sql_query($sql);
    while ($row=sql_fetch_array($result))
    {
        // 회원자료 삭제
        member_delete($row['mb_id']);
    }
}

// 음성 캡챠 파일 삭제
$captcha_mp3 = glob(G5_DATA_PATH.'/cache/kcaptcha-*.mp3');
if($captcha_mp3 && is_array($captcha_mp3)) {
    foreach ($captcha_mp3 as $file) {
        if (filemtime($file) + 86400 < G5_SERVER_TIME) {
            @unlink($file);
        }
    }
}

// 실행일 기록
if(isset($config['cf_optimize_date'])) {
    sql_query(" update {$g5['config_table']} set cf_optimize_date = '".G5_TIME_YMD."' ");
}
?>

로그인 후 평가할 수 있습니다

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

4년 전

bbs/db_table.optimize.php 파일에서

optimize table 호출 부분 모두 주석처리하세요.

이걸 배치로 만들어야지, 이런식으로 코딩해두면  불규칙적으로 느려지게 됩니다.

(사용자가 없는 새벽 6시에 배치로 실행)

 

 

로그인 후 평가할 수 있습니다

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

플래토
4년 전

브라우저의 개발자도구(F12)를 띄워서

네트워크 탭을 열은다음 로그인할때 시간을 가장 많아 소모하는 요소를 체크해보세요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

모몽
4년 전
고맙습니다~

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

4년 전

소스나 상황을 보지 않고는 모릅니다. 에프12개발자 도구 네트워크로 어떤 부분에서 로딩이 오래 걸리는지 체크해보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

모몽
4년 전
고맙습니다~

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

답변을 작성하려면 로그인이 필요합니다.

로그인