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

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

QA

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

본문

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

이 질문에 댓글 쓰기 :

답변 6

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

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

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

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

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

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

bbs/db_table.optimize.php 파일에서

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

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

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

 

 

저도 똑같은 증상인데 ㅎㅎ

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

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

 

<?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."' ");
}
?>

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

 

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

OTIMIZE TABLE 포함된 코드 라인을 모두

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

이런식으로 하면되나요?

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

답변을 작성하시기 전에 로그인 해주세요.
전체 806
QA 내용 검색

회원로그인

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