Latest web development tutorials

SQLite는 진공

임시 데이터베이스 파일에 기본 데이터베이스의 내용을 복사 한 다음 주 데이터베이스를 비우고, 데이터베이스 파일의 복사본에서 일본어를 다시 의해 VACUUM 명령. 이 테이블의 데이터가 연속적으로 배열되어 자유 페이지를 제거하고, 다른 데이터베이스 파일 구조를 정리한다.

테이블이 명시 적으로 정수 기본 키 (INTEGER PRIMARY KEY)가없는 경우, VACUUM 명령은 테이블 행 ID (ROWID)의 항목을 변경할 수 있습니다. VACUUM 명령은 기본 데이터베이스에만 적용 추가적인 데이터베이스 파일 VACUUM 명령을 사용하는 것은 불가능하다.

액티브 한 트랜잭션 (transaction)가있는 경우, VACUUM 명령이 실패합니다. VACUUM 명령은 메모리 데이터베이스에 대해 아무것도 아니다. VACUUM는 또한 데이터베이스 특정 구성 매개 변수의 수를 수정하는 데 사용할 수 있도록 VACUUM 명령 때문에, 처음부터 데이터베이스 파일을 다시 만들 수 있습니다.

수동 VACUUM

여기에 발행 VACUUM는 전체 데이터베이스를 명령을 명령 프롬프트에 대한 구문은 다음과 같습니다

$ sqlite3를 데이터베이스 _ "VACUUM;"

또한 다음과 같이, SQLite는 프롬프트 VACUUM를 실행할 수 있습니다 :

sqlite가> VACUUM;

또한 다음과 같이 특정 테이블에 VACUUM를 실행할 수 있습니다 :

sqlite가> 진공 테이블 _;

자동 진공 (자동 VACUUM)

SQLite는의 자동 진공 VACUUM가함으로써 데이터베이스의 크기를 줄일 수있는 데이터베이스의 단부에 바로 자유 페이지의 동일하지 않다. 이것에 의해, 현저하게 방지 VACUUM 프래그먼트 데이터베이스, 단편 수있다. 자동 VACUUM 그렇게 만 데이터베이스를 작게 만들 것입니다.

SQLite는 프롬프트에서는 컴파일하고 실행 가능 / SQLite는 자동 진공을 해제를 사용할 수 있습니다 :

sqlite가> PRAGMA의 auto_vacuum = 없음 - 0 수단은 자동 진공을 해제
sqlite가> PRAGMA의 auto_vacuum = INCREMENTAL - 1 수단이 증가 진공을 사용
이 방법은 전체 자동 진공을 사용 -; FULL sqlite가> PRAGMA의 auto_vacuum을 =

당신은 자동 진공 설정을 확인하려면 명령 프롬프트에서 다음 명령을 실행할 수 있습니다 :

$ sqlite3를 데이터베이스 _ "PRAGMA의 auto_vacuum;"