phpmyadmin 최적화에 대한 질문

phpmyadmin 최적화에 대한 질문

QA

phpmyadmin 최적화에 대한 질문

답변 3

본문

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;

헉...... 이런 간단한 방법이 ㅠㅠ

$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 = _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";
    */
}

이렇게만 넣어주면 알아서 복구 및 최적화를 해준다는 말인가요 ㅠㅠ 넘 감사드립니다.

$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 = 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";
    */
}

최종적으로 이렇게 수정했습니다! 답변감사합니다!

서버 관련은 https://www.apachezone.com/  여기에 많은 것이 있습니다.

 

phpmyadmin에서 하는  테이블 최적화 작업이 코맨드 라인 명령어로 된다면,

 

Cron으로 돌려서 주기적으로 처리 가능합니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 59,588
© SIRSOFT
현재 페이지 제일 처음으로