답변 6개 / 댓글 4개
하루 한 번 그런 거라면 bbs/db_table.optimize.php 파일이 실행돼서 그럴 수도 있습니다.
해당 파일을 살펴보면 접속자로그, 인기검색어, 최근게시물 등등.. 설정일이 지난 것들이 일괄 삭제되는데 사이트 규모가 좀 크면 영향이 있을 수도 있습니다.
sql_query(" OPTIMIZE TABLE `{$g5['board_new_table']}` ");
OTIMIZE 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."' ");
}
?>
브라우저의 개발자도구(F12)를 띄워서
네트워크 탭을 열은다음 로그인할때 시간을 가장 많아 소모하는 요소를 체크해보세요
답변을 작성하려면 로그인이 필요합니다.
그런데 자료가 얼마 안되는데도 그정도 처리시간이 소요된다면
sir 같으면 엄청나게 걸릴 것 같은데 그렇지는 않을테고
딜레이 줄이는 방법있을까요?