2009-02-02 9 views
6

시간이 중요한 데이터가 가득한 데이터베이스가 있으므로 매일 테이블을 자른 다음 다른 데이터 병합에서 새 데이터를 잘린 테이블로 가져옵니다.MySQL에서 OPTIMIZE를 사용하는 경우

현재 매일 데이터 새로 고침을 가져온 후 테이블에서 OPTIMIZE를 실행하고 있습니다. 그러나, MySQL의 OPTIMIZE 구문 페이지 http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html

보고 내가 사용하지 않는 공간과 조각 모음 데이터를 되찾기 위해 최적화 할 수 있습니다 말한다.

OPTIMIZE를 두 번 실행해야합니까? 한 번 데이터를 삭제 한 다음 다시 삽입 한 후 다시 삭제 하시겠습니까? 또는 한 번만 입력 하시겠습니까? 새 데이터를로드 한 후 한 번만 입력해야합니까? 을 삭제 했습니까?

답변

5

MyISAM 또는 InnoDB 테이블을 사용하는지 여부에 따라 달라질 수 있지만 테이블을 잘라낸 후에 OPTIMIZE를 실행합니다. 이렇게하면 공간이 확보되어 매우 빨리 작동합니다.

데이터 배치를 삽입하면 모든 데이터가 순서대로 삽입되고 조각화되지 않아야하며 신선한 삽입물이므로 다시 확보 할 공간이 없습니다. 작은 데이터 세트의 경우 너무 중요하지 않을 수 있지만 삽입 후에 OPTIMIZE를 수행하는 대형 데이터 세트의 경우 상당히 느릴 수 있습니다.

+0

저에게 의미가 있지만 긍정적이지는 않았습니다. 감사합니다. – pedalpete

0

새 데이터를 가져온 후에 한 번만해도 좋습니다.

0

데이터베이스에 데이터 세트를 삭제하거나 업데이트 한 후 테이블 최적화 명령을 사용하여 조각화되지 않은 공간을 제거 할 수 있습니다.

최적화 명령을 두 번 사용할 필요가 없습니다. 모든 DML 프로세스 이후에 optimize 명령을 사용할 수 있습니다.

관련 문제