English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
VACUUM명령어는주 데이터베이스의내용을임시데이터베이스파일로복사한 후주 데이터베이스를비우고, 원본 데이터베이스파일을복제에서재로드합니다.이는빈페이지를제거하고, 테이블의데이터를연속적으로정렬하며,또한데이터베이스파일구조를정리합니다
테이블에명확한정수형주키(INTEGER PRIMARY KEY)가없다면VACUUM명령어는테이블항목의행ID(ROWID)을변경할 수 있습니다.VACUUM명령어는주 데이터베이스에만적용되며, 추가된데이터베이스파일에는VACUUM명령어를사용할 수 없습니다
活跃的事务이있다면VACUUM명령어는실패합니다.VACUUM명령어는메모리데이터베이스의모든작업에적합합니다.VACUUM명령어는데이터베이스파일을다시부터만들어주기 때문에VACUUM은데이터베이스특정설정파라미터를수정하기에도용될 수 있습니다
이는전체데이터베이스에대한VACUUM명령어를명령표시줄에서보내는간단한문법입니다-
$sqlite3 database_name "VACUUM;"
SQLite 표시줄에서 다음과 같이 VACUUM을 실행할 수 있습니다-
sqlite> VACUUM;
특정테이블에서VACUUM을실행할 수 있습니다.예를 들어-
sqlite> VACUUM table_name;
SQLite의자동백업-VACUUM과VACUUM은다를의미하지않습니다.그것은빈페이지를데이터베이스끝으로이동하여데이터베이스크기를소환합니다.이렇게하면데이터베이스조각화를명확히하는것이며VACUUM은반조각화합니다.따라서Auto-VACUUM은데이터베이스를더작게만들어줍니다
SQLite 표시줄에서 다음과 같이 컴파일 및 실행하여 활성화할 수 있습니다/SQLite의자동백업을 비활성화합니다-VACUUM:
sqlite> PRAGMA auto_vacuum = NONE; -- 0은자동백업비활성화를 의미합니다 sqlite> PRAGMA auto_vacuum = FULL; -- 1 means enable full auto vacuum sqlite> PRAGMA auto_vacuum = INCREMENTAL; -- 2 means enable incremental vacuum
Vacuum 설정을 확인하기 위해 다음 명령어를 명령 프롬프트에서 실행할 수 있습니다-
$sqlite3 database_name "PRAGMA auto_vacuum;"