관리자 로그인 시 로딩 시간이 딜레이 되는것은 왜그런가요 ?
본문
항상 그런것은 아니고 가끔 10초 이상 딜레이가 됩니다.
답변 6
하루 한 번 그런 거라면 bbs/db_table.optimize.php 파일이 실행돼서 그럴 수도 있습니다.
해당 파일을 살펴보면 접속자로그, 인기검색어, 최근게시물 등등.. 설정일이 지난 것들이 일괄 삭제되는데 사이트 규모가 좀 크면 영향이 있을 수도 있습니다.
소스나 상황을 보지 않고는 모릅니다. 에프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 이라고 된거 다 주석 처리하시면 됩니다.