테이블 최적화
테이블은 자료의 삽입과 수정, 삭제 작업이 자주 발생합니다. 이러한 잦은 데이터의 변경 요구는 테이블의 실제 데이터의 구조를 엉키게 만들어 처리 속도를 저하시킵니다.
예전, 우리가 컴퓨터의 디스크 조각 모음 기능을 실행했던 것처럼 파일의 데이터 링크 구조가 엉키게 됩니다. 만일 테이블에 가변폭 varchar 형태의 컬럼 데이터 타입을 많이 사 용했다고 한다면 테이블에서는 불연속적인 공간이 더욱 늘어날 것입니다. 불연속적인 공 간이 증가할수록 테이블 데이터 구조는 낭비되고 속도가 저하됩니다.
이런 경우 중간중간 테이블 최적화 기능을 통하여 테이블의 불연속적인 공간을 정리해 주 는 것이 좋습니다. 불연속적인 공간이 줄어들면 테이블의 파일 크기도 작아지고, 더 빠른 동작 처리도 가능해집니다.
SQL 문법구조
| 쿼리 문법 |
OPTIMIZE TABLE 데이블명
콘솔으로 OPTIMIZE 실습하기
OPTIMIZE TABLE 은 작업 원리는 원본 데이터를 복사한 후에 데이터 정리 작업을 진행 합니다. 따라서 최적화 작업 중에 검색과 같은 데이터 처리 작업은 유지할 수 있습니다. 정리 작업이 완료되면 이전의 테이블은 삭제되고 정리된 새로운 테이블을 유지하게 됩니다.
| 콘솔 실습 화면 |
mysql> optimize table members;
+--------------+----------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+--------------+----------+----------+----------+
| jiny.members | optimize | status | OK |
+--------------+----------+----------+----------+
1 row in set (0.03 sec)
주의할 점은 최적화 작업 중에는 읽기만 가능하며 새로운 자료의 삽입이나 업데이트가 잠시 지연됩니다.