답변 6개
하루 한 번 그런 거라면 bbs/db_table.optimize.php 파일이 실행돼서 그럴 수도 있습니다.
해당 파일을 살펴보면 접속자로그, 인기검색어, 최근게시물 등등.. 설정일이 지난 것들이 일괄 삭제되는데 사이트 규모가 좀 크면 영향이 있을 수도 있습니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
sql_query(" OPTIMIZE TABLE `{$g5['board_new_table']}` ");
OTIMIZE TABLE 이라고 된거 다 주석 처리하시면 됩니다.
답변에 대한 댓글 1개
// 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."' ");
}
?>
댓글을 작성하려면 로그인이 필요합니다.
bbs/db_table.optimize.php 파일에서
optimize table 호출 부분 모두 주석처리하세요.
이걸 배치로 만들어야지, 이런식으로 코딩해두면 불규칙적으로 느려지게 됩니다.
(사용자가 없는 새벽 6시에 배치로 실행)
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
그런데 자료가 얼마 안되는데도 그정도 처리시간이 소요된다면
sir 같으면 엄청나게 걸릴 것 같은데 그렇지는 않을테고
딜레이 줄이는 방법있을까요?