Posted
Filed under PHP
[원문] : http://www.happyjung.com/bbs/board.php?bo_table=lecture&wr_id=859&page=15

mysql> optimize [local | no_write_to_binlog] table tbl_name[,tbl_name]...
mysql> optimize table 테이블이름

* optimize table은 테이블에서 많은 자료를 삭제, 갱신 했을때 사용하면 좋습니다.
* MyISAM, BDB 테이블에서만 작동됩니다.
* optimize table 수행중에는 테이블에 LOCK이 걸립니다.

오래 사용하다 보면 불필요한 메모리가 많아져 시스템부하를 가져올수 있습니다.
따라서 가끔씩 아래와 같은 루틴을 돌려, 최적화된 데이타를 가질수 있도록 도와주면 좋습니다.

<?php
$mysql_host = "DB주소";
$mysql_user = "DB아이디";
$mysql_password = "DB비밀번호";
$mysql_db = "DB이름";
@mysql_connect($mysql_host, $mysql_user, $mysql_password) or die(mysql_error());
@mysql_select_db($mysql_db) or die(mysql_error());

$table_name = '최적화할_테이블이름';

echo "테이블 최적화 시작";
//exit; ## 사용 안할때는 앞에 // 를 지우세요

$tables = mysql_list_tables($mysql_db);
while (list($table_name) = mysql_fetch_array($tables)) {
$sql = "optimize table $table_name";
mysql_query($sql) or exit(mysql_error());
}
echo "테이블 최적화 완료";
?>


참고자료
http://www.linux.co.kr/blog2/nazin/index.php/19
http://eureka7.com.ne.kr/MySQL_4_1_API/optimize-table.html
2012/11/23 13:36 2012/11/23 13:36