mysql Database 테이블 모두 최적화하기
컨텐츠 정보
- 18,854 조회
- 34 추천
- 목록
본문
서버에 Mysql 데이터 양이 많이 쌓이고, 쿼리 작업이 활발히 일어날경우,
이에 따른 db 의 공간 부담율도 커지게 됩니다.
이에 따라, 양이 많을 경우 하나하나 최적화를 해줄수도 없고,
아래와 같이 간략하게 쉘을 돌려봤습니다.
전엔 php 쉘로 돌렸는데 다소 느린것 같더군요.
bash 로 변경해 봤습니다.
혹, 필요하신분들 있으시면 가져다가, 쓰세요.
화일명으로 저장후 실행권한 주시고, /etc/cron.daily 에 넣어 주세요.
하루에 한번씩 돌리면 좋을듯 하네요.
조금이라도 도움이 되었으면 하는 바램으로....
-----------------------------------------------------------------
#!/bin/sh
# 2004/03/20
# http://www.rootman.co.kr
# 제목 : mysql Database 테이블 모두 최적화하기
# 변경사항 : mysql root 변경
# --------------------------------------------------
#
DB_cnt=0;
DB_pass="루트패스워드"
Total_Table=0;
DB_str=`mysql -u root -p${DB_pass} -e"show databases"`;
for DB_for in ${DB_str}
do
if [ ${DB_for} != "Database" ]; then
TABLE_cnt=0;
Table_str=`mysql -u root -p${DB_pass} -e"show tables" ${DB_for}`;
for TABLE_for in ${Table_str}
do
Op_Str=`mysql -u root -p${DB_pass} -e"optimize table $TABLE_for" ${DB_for}`;
echo " - DB명 : ${DB_for} --> ${TABLE_for} ";
let TABLE_cnt=TABLE_cnt+1;
done
echo "------------------------------------------> 테이블명 : ${TABLE_cnt} 최적화완료.";
let Total_Table=Total_Table+${TABLE_cnt};
sleep 1;
let DB_cnt=DB_cnt+1;
fi;
done
echo "====================================================================================";
echo "- 호스트명 : `hostname` 에 대한 DB ${DB_cnt}개, 토탈테이블 ${Total_Table} 최적화 완료.";
echo "====================================================================================";
이에 따른 db 의 공간 부담율도 커지게 됩니다.
이에 따라, 양이 많을 경우 하나하나 최적화를 해줄수도 없고,
아래와 같이 간략하게 쉘을 돌려봤습니다.
전엔 php 쉘로 돌렸는데 다소 느린것 같더군요.
bash 로 변경해 봤습니다.
혹, 필요하신분들 있으시면 가져다가, 쓰세요.
화일명으로 저장후 실행권한 주시고, /etc/cron.daily 에 넣어 주세요.
하루에 한번씩 돌리면 좋을듯 하네요.
조금이라도 도움이 되었으면 하는 바램으로....
-----------------------------------------------------------------
#!/bin/sh
# 2004/03/20
# http://www.rootman.co.kr
# 제목 : mysql Database 테이블 모두 최적화하기
# 변경사항 : mysql root 변경
# --------------------------------------------------
#
DB_cnt=0;
DB_pass="루트패스워드"
Total_Table=0;
DB_str=`mysql -u root -p${DB_pass} -e"show databases"`;
for DB_for in ${DB_str}
do
if [ ${DB_for} != "Database" ]; then
TABLE_cnt=0;
Table_str=`mysql -u root -p${DB_pass} -e"show tables" ${DB_for}`;
for TABLE_for in ${Table_str}
do
Op_Str=`mysql -u root -p${DB_pass} -e"optimize table $TABLE_for" ${DB_for}`;
echo " - DB명 : ${DB_for} --> ${TABLE_for} ";
let TABLE_cnt=TABLE_cnt+1;
done
echo "------------------------------------------> 테이블명 : ${TABLE_cnt} 최적화완료.";
let Total_Table=Total_Table+${TABLE_cnt};
sleep 1;
let DB_cnt=DB_cnt+1;
fi;
done
echo "====================================================================================";
echo "- 호스트명 : `hostname` 에 대한 DB ${DB_cnt}개, 토탈테이블 ${Total_Table} 최적화 완료.";
echo "====================================================================================";
관련자료
-
링크
댓글 0
등록된 댓글이 없습니다.