테스트 사이트 - 개발 중인 베타 버전입니다

phpmyadmin 최적화에 대한 질문 채택완료

티틴 3년 전 조회 2,892

phpmyadmin 질문좀 드릴께요.

시간이 지날수록 포인트 등의 내역이 남아 사이트가 많이 느려지는데요

이때마다 phpmyadmin 테이블 최적화를 해주면 상당히 빨라집니다.

 

혹시 이걸 하루에 한 번 자동으로 최적화 할 수 있는 방법이 있을까요?

cron이라는건 알고 있는데, 이걸 이용해서 어떻게 해야 할지 방법을 모르겠네요..

답변주시면 정말 감사하겠습니다. 

 

환경은 전용서버 사용중에 있습니다. 

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

답변 3개

채택된 답변
+20 포인트
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개

티틴
3년 전
헉...... 이런 간단한 방법이 ㅠㅠ

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

이렇게만 넣어주면 알아서 복구 및 최적화를 해준다는 말인가요 ㅠㅠ 넘 감사드립니다.
균이
3년 전
@mysql_query($sql1); --> sql_query($sql1); 수정 하세요
티틴
3년 전
$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";
*/
}

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

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

서버 호스팅을 하신다면

아마도 DB 백업도 cron 등으로 되고 있을 거라 짐작 됩니다.

이 때 optimize sql을 실행하면 되겠네요.

 

로그인 후 평가할 수 있습니다

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

3년 전

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

 

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

 

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

로그인 후 평가할 수 있습니다

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

답변을 작성하려면 로그인이 필요합니다.

로그인