기본 콘텐츠로 건너뛰기

SQLite에서 파일 크기 줄이기

간단한 개인 프로젝트를 하고 있는데, SQLite DB파일 크기가 매우 커져서 테이블에 필요 없는 레코드를 날렸다. 그런데 날리고도 파일크기가 그대로라서 여기저기 뒤져보니 VACUUM 커맨드를 사용하란다.

사용법은 매우 간단하다. 그저 "VACUUM;"이라고 날려주면 동작한다.
(참조: http://sqlite.org/lang_vacuum.html )

다만, 동작이 매우 느려서 자주 쓸만한 것은 아니다. 실제로 100MB짜리 파일을 7KB로 줄이는데 수 분이 걸렸다. 소스를 봐야겠지만, DB를 EXPORT한 뒤에, 파일을 지우고 다시 IMPORT하는게 아닐까 하는 의구심이 든다.

매번 하기 귀찮으면 "PRAGMA auto_vacuum=1;"를 하면, 새로운 빈 페이지(DELETE나 DROP TABLE 같은...)가 생길 때마다, VACUUM을 실행한다. 다만, SQLite구조 문제로 테이블을 생성하기 전에 미리 날려야하는 안타까움이 있다.
(참조: http://sqlite.org/pragma.html#pragma_auto_vacuum )

댓글

  1. 늦은 댓글이지만 전 9G짜리 파일에 vacuum; 명령을 내리니 200M정도로 줄어들고 시간은 약 1분정도 걸리더군요.

    답글삭제

댓글 쓰기

이 블로그의 인기 게시물

탐색기에서 OneDrive 이 2개로 보이는 문제

왜 2개가 보이는지 모르겠지만, Registry 삭제하면 됨 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace 하위 키에서 OneDrive 둘 중에 하나만 지워도 바로 반영됨. 참조:  https://answers.microsoft.com/en-us/msoffice/forum/all/duplicate-onedrives-in-file-explorer/49c935a6-287b-43a5-aed5-2dee2a1c1b22

절전을 깨운 녀석 알아내기

가끔씩 윈도우 절전을 깨우는 녀석이 있는데, 보통은 USB Keyboard/Mouse 이다. 요런 녀석들은 장치관리자에서 "이 장치를 사용하여 컴퓨터의 대기 모드를 종료할 수 있음"을 꺼주면 된다. 그래도 가끔씩 알 수 없는 이유로 켜졌을 경우, 관리자 권한으로 커맨드 창 열고 확인한다. C:\> powercfg -lastwake 절전 모드 해제 기록 카운트 - 1 절전 모드 해제 기록[0] 절전 모드 해제 소스 카운트 - 1 절전 모드 해제 소스[0] 종류: 장치 인스턴스 경로: XXX 이름: YYY 설명: ZZZ 제조업체: AAA