0
我有一個很大的問題與命令VACUUM釋放內存刪除的SQL句子。sqlite3真空,如何使用科爾多瓦APP
我正在製作Cordova Android APP,我知道當我使用DELETE SQL語句時,應用程序的空間不下來,......空間像片段HardDisk一樣持續存在。
然後,我看到VACUUM可以壓縮我的數據庫,但我遇到了問題!
我使用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以頁面大小的倍數分配空間,所以如果你只刪除了幾行,它將不會釋放足夠的空間來釋放頁面。 –
沒錯!我將40000行插入到bbdd表中,安裝時我的應用數據大小爲484KB,40k行爲2.18MB。然後用真空低我的數據大小爲500KB。 THX上校爲你提供幫助:) – Armando