phpmyadmin 최적화에 대한 질문 채택완료
phpmyadmin 질문좀 드릴께요.
시간이 지날수록 포인트 등의 내역이 남아 사이트가 많이 느려지는데요
이때마다 phpmyadmin 테이블 최적화를 해주면 상당히 빨라집니다.
혹시 이걸 하루에 한 번 자동으로 최적화 할 수 있는 방법이 있을까요?
cron이라는건 알고 있는데, 이걸 이용해서 어떻게 해야 할지 방법을 모르겠네요..
답변주시면 정말 감사하겠습니다.
환경은 전용서버 사용중에 있습니다.
답변 3개
그누보드4 화일 adm/repair.php 하단 부분에 깨진 테이블 복구 및 최적화 코드가 있습니다
이부분을 bbs/db_table.optimize.php 하단에 넣으면 누군가 접속하면 하루에 한번 실행 합니다
크론이니 이런 것은 필요 없습니다
해당코드에서 아래 부분만 수정 하면 됩니다
$sql = "SHOW TABLE STATUS FROM ".$mysql_db; 수정
==>
$sql = "SHOW TABLE STATUS FROM ".G5_MYSQL_DB;
답변에 대한 댓글 3개
$result = sql_query($sql);
while($row = sql_fetch_array($result))
{
$str = '';
$tbl = $row['Name'];
$sql1 = " SELECT COUNT(*) FROM `$tbl` ";
$result1 = sql_query($sql1);
if (!$result1)
{
// 테이블 복구
$sql2 = " REPAIR TABLE `$tbl` ";
sql_query($sql2);
$str .= $sql2 . "<br/>";
}
if($row['Data_free'] == 0) continue;
// 테이블 최적화
$sql3 = " OPTIMIZE TABLE `$tbl` ";
sql_query($sql3);
$str .= $sql3 . "<br/>";
echo "<script>document.getElementById('ct').innerHTML += '$str';</script>\n";
flush();
/*
for($i = 0; $i < 40 - strlen($tbl); $i ++) echo " ";
echo "\t";
for($i = 0; $i < 9 - strlen($row['Data_free']); $i ++) echo " ";
echo $row['Data_free']." OPTIMIZED\n";
*/
}
최종적으로 이렇게 수정했습니다! 답변감사합니다!
댓글을 작성하려면 로그인이 필요합니다.
서버 호스팅을 하신다면
아마도 DB 백업도 cron 등으로 되고 있을 거라 짐작 됩니다.
이 때 optimize sql을 실행하면 되겠네요.
댓글을 작성하려면 로그인이 필요합니다.
서버 관련은 https://www.apachezone.com/ 여기에 많은 것이 있습니다.
phpmyadmin에서 하는 테이블 최적화 작업이 코맨드 라인 명령어로 된다면,
Cron으로 돌려서 주기적으로 처리 가능합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
$sql = "SHOW TABLE STATUS FROM ".G5_MYSQL_DB;
$result = sql_query($sql);
while($row = sql_fetch_array($result))
{
$str = '';
$tbl = $row['Name'];
$sql1 = " SELECT COUNT(*) FROM `$tbl` ";
$result1 = @mysql_query($sql1);
if (!$result1)
{
// 테이블 복구
$sql2 = " REPAIR TABLE `$tbl` ";
sql_query($sql2);
$str .= $sql2 . "<br/>";
}
if($row['Data_free'] == 0) continue;
// 테이블 최적화
$sql3 = " OPTIMIZE TABLE `$tbl` ";
sql_query($sql3);
$str .= $sql3 . "<br/>";
echo "<script>document.getElementById('ct').innerHTML += '$str';</script>\n";
flush();
/*
for($i = 0; $i < 40 - strlen($tbl); $i ++) echo " ";
echo "\t";
for($i = 0; $i < 9 - strlen($row['Data_free']); $i ++) echo " ";
echo $row['Data_free']." OPTIMIZED\n";
*/
}
이렇게만 넣어주면 알아서 복구 및 최적화를 해준다는 말인가요 ㅠㅠ 넘 감사드립니다.