TRUNCATE / OPTIMIZE TABLE 명령어
페이지 정보
작성자 JMStudy 작성일06-07-27 11:15 조회7,686회 댓글0건본문
TRUNCATE TABLE [테이블명] 명령
TRUNCATE는 테이블을 DROP했다 스키마에 맞게 다시생성 하는 명령어 입니다
OPTIMIZE TABLE [테이블명] 명령
myisam 에서는 레코드를 delete 하면 실제로 데이타를 삭제하는것이 아니라, 레코드의 flag 만 delete 되었다는걸로 바꿉니다.
즉 실제로 데이터는 그대로 남아있습니다.
근데 이런경우 시간이 지나서 delete 가 상당히 많이 되어있는 상태라면, 안쓰는 데이터들로 인해서 db 효율이 떨이집니다.
optimize 는 이런 delete 된 데이터들을 완전히 삭제하고, 테이블에 대한 조각모음을 한다고 생각하시면 됩니다.
(delete 된 블럭들이 완전히 삭제되니, optimize 후에는 테이블 사이즈가 줄겠죠.)
optimize 실행 주기는 뭐 디비 상태에 따라 다르겠죠. 주기적으로 테이블 상태를 확인해서 좀 오래되었다 싶으면 돌려주셔도 상관없을듯.
(사실 주기에 대한건 구체적인 답이 있을수 없습니다. 계속 모니터링 하시면서 직접 결정하셔야 할 문제지요.)
TRUNCATE는 테이블을 DROP했다 스키마에 맞게 다시생성 하는 명령어 입니다
OPTIMIZE TABLE [테이블명] 명령
myisam 에서는 레코드를 delete 하면 실제로 데이타를 삭제하는것이 아니라, 레코드의 flag 만 delete 되었다는걸로 바꿉니다.
즉 실제로 데이터는 그대로 남아있습니다.
근데 이런경우 시간이 지나서 delete 가 상당히 많이 되어있는 상태라면, 안쓰는 데이터들로 인해서 db 효율이 떨이집니다.
optimize 는 이런 delete 된 데이터들을 완전히 삭제하고, 테이블에 대한 조각모음을 한다고 생각하시면 됩니다.
(delete 된 블럭들이 완전히 삭제되니, optimize 후에는 테이블 사이즈가 줄겠죠.)
optimize 실행 주기는 뭐 디비 상태에 따라 다르겠죠. 주기적으로 테이블 상태를 확인해서 좀 오래되었다 싶으면 돌려주셔도 상관없을듯.
(사실 주기에 대한건 구체적인 답이 있을수 없습니다. 계속 모니터링 하시면서 직접 결정하셔야 할 문제지요.)
댓글목록
등록된 댓글이 없습니다.