2026, 새로운 도약을 시작합니다.

mysql 자동 최적화

저 같은 경우 포인트제 사이트를 운영하다보니

포인트 테이블만 해도 수기가 용량알 차지하더라구요.

그럴때마다 최적화 해주면 용량이 확 줄길래 이걸 자동화 할 수 있는 방법이 있나 찾아봤는데

균이님이 친절하게 답변해주셨네요.

다음 코드를 bbs/db_table.optimize.php 하단에 집어 넣으시면 됩니다.

*주의

저도 방금 적용했는지라 아직 어떤 부작용이 있나 확인이 어렵습니다. 그러니 백업 해두시고 사용하시길..

누군가 사이트에 접속하면 알아서 실행되기에 아마도 잠깐 느려질수도 있습니다. 

혹시 여기에 문제점이 있다면, 고수분들 답변좀 부탁드릴께요. 

(그누4에 있던 기능을 그누5에 괜히 뺐다고 생각되지는 않아서...) 

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

|

댓글 4개

괜찮군요 최적화 방법이 있었네용
좋은것 같은데...다른 분들의 의견을 수렴해서 사용해 보도록 하겠습니다.

갤러리가 많이 빨라졌네요 

감사합니다 새해 福 많이 받으세요

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

그누보드5 팁자료실

번호 제목 글쓴이 날짜 조회
공지 3년 전 조회 4,598
2741 3일 전 조회 111
2740 4일 전 조회 103
2739 1주 전 조회 209
2738 1주 전 조회 217
2737 1주 전 조회 181
2736 1주 전 조회 280
2735 3주 전 조회 281
2734 3주 전 조회 263
2733 1개월 전 조회 265
2732 1개월 전 조회 301
2731 1개월 전 조회 267
2730 1개월 전 조회 226
2729 1개월 전 조회 356
2728 1개월 전 조회 245
2727 1개월 전 조회 422
2726 1개월 전 조회 256
2725 1개월 전 조회 330
2724 1개월 전 조회 358
2723 1개월 전 조회 267
2722 1개월 전 조회 300
2721 1개월 전 조회 211
2720 2개월 전 조회 304
2719 2개월 전 조회 307
2718 2개월 전 조회 202
2717 2개월 전 조회 336
2716 2개월 전 조회 202
2715 2개월 전 조회 311
2714 2개월 전 조회 273
2713 2개월 전 조회 376
2712 2개월 전 조회 289
🐛 버그신고