0
delete 명령을 사용하여 메모리를 확보하려면 VACUUM 명령에 큰 문제가 있습니다.sqlite3 vacuum, cordova에서 사용하는 방법 APP
나는 Cordova 안드로이드 APP를 만들고, 내가 DELETE SQL 문장을 사용할 때 응용 프로그램의 공간이 다운되지 않는다는 것을 안다.이 공간은 조각 하드 디스크처럼 지속된다.
그런 다음 VACUUM이 내 DB를 압축 할 수 있지만 문제가 있음을 확인했습니다. 나는 모든 사이트에서 sqlite3를, 진공을 사용
는 다음과 같이, 즉 트랜잭션에서 실행 할수 없어 말 :
var db = window.sqlitePlugin.openDatabase({name:"maintenance", location:'default'});
db.transaction(function (tx) {
tx.executeSql('VACUUM', [], function (tx, results) {
alert('done');
}, function (tx, error) {
alert('error');
alert(error.message);
});
});
좋아
, 그럼, 내가 트랜잭션에서 할 수없는 경우, 수 어떻게하면 진공 또는 자동 진공 또는 유사한 라인 명령을 쓰지 않고도 BD를 압축 실행할 수 말해?
안녕하세요, 도움을 감사합니다, 내가 사용하는 중 거래. ok 블록의 "VACUUM DONE"메시지는 표시되지만 결과는 표시되지 않습니다. 앱의 데이터 크기가 진공 이후와 이전과 동일합니다. – Armando
@Armando 삭제하려는 데이터의 양은 어느 정도입니까? SQLite는 페이지 크기의 배수로 공간을 할당하므로 몇 행만 삭제할 경우 페이지를 비울만큼 충분한 여유 공간이 확보되지 않습니다. –
그래, 맞아! 내가 bbdd 테이블에 40000 행을 삽입, 내 애플 리케이션 데이터 크기는 484KB이고 40k 행은 2.18MB이다. 그런 다음 진공으로 데이터 크기를 500KB로 낮 춥니 다. 도움을 주신 THX 중령 :) – Armando