[유튜브 방송] (즐겁게 배우는 SQL) 기획 소개에서 설명드린 즐겁게 배우는 SQL 36편을 공개해드리겠다. 36편은 테이블 청소 방법을 소개한다.
2021년 1월 19일자 [즐겁게 배우는 SQL #36] 데이터를 정의하자 - 청소(Vacuum) 방송은 다음에서 볼 수 있으며, 전체 방송 플레이리스트는 즐겁게 배우는 SQL에서 확인할 수 있다.
하이라이트를 요약 정리하면 다음과 같다:
- 00:00 SQLite에서 청소(Vacuum)가 필요한 이유
- 04:55 VACUUM 명령과 pragma를 사용한 VACUUM 방식 지정
- 05:35 VACUUM INTO 살펴보기
원본 학습자료는 SQLite VACUUM을 참고하고, 방송에 사용한 실제 실습 자료는 다음을 참고한다:
- 단계 1: SQLite에서 청소(Vacuum)가 필요한 이유
- DROP이나 DELETE 등으로 자료를 삭제하더라도 데이터베이스 파일 크기는 그대로 --> 향후 사용을 위해 확보된 상태로 유지
- INSERT/DELETE 등으로 데이터를 삭제하면, 색인과 테이블이 조각화되는 상황이 발생
- 이런 문제점을 보완하기 위해 VACUUM을 도입(비고: PostgreSQL)
- 주의: VACUUM은 임시 데이터베이스 파일을 만들고 조각모음을 수행하고 다시 원본 데이터베이스 파일에 반영하므로 실시간성이 떨어짐
- 큰 테이블이나 색인을 데이터베이스에서 삭제하고 나면 수작업으로 VACUUM을 실행할 필요가 있음
- 주의: 3.9.2 버전에서 main 데이터베이스에만 VACUUM 명령을 실행할 수 있음
- 참고: SQLite는 자동으로 VACUUM 명령을 수행할 수 있지만, 제약으로 인해 수동으로 돌리는 편이 바람직함
- 단계 2: VACUUM 명령과 pragma를 사용한 VACUUM 방식 지정
- SQL> VACUUM; # 수동으로 VACUUM
- SQL> PRAGMA auto_vacuum = FULL; # 전체
- SQL> PRAGMA auto_vacuum = INCREMENTAL; # 증분
- SQL> PRAGMA auto_vacuum = NONE; # 하지 않음
- 단계 3: VACUUM INTO 살펴보기
- SQL> VACUUM main INTO 'c:\sqlite\db\chinook_backup.db';
댓글 없음:
댓글 쓰기