SQLite刪除資料占用空間不變的解決方法

2021-06-18 18:46:45 字數 370 閱讀 4040

這幾天使用sqlite發現個問題,原空資料庫只有10k,往資料庫寫1m的資料,寫完資料之後,資料庫房有將近1034k左右,這時再將資料清空,發現資料庫的大小依然沒變,還是1034,我就奇了怪了,朋友告訴我應該是vacuum的原因,網上了查了下,網上的解釋如下:

當你從sqlite刪除資料後,未使用的磁碟空間被新增到乙個內在的」空閒列表」中用於儲存你下次插入的資料。磁碟空間並沒有丟失。但是也不向作業系統返回磁碟空間。

找到原因就得知,在建表之前需要設定vacuum,vacuum的預設值是0,可以建表之後查詢vacuum的值,查詢命令,pragma auto_vacuum,vacuum在建表之後是不能修改的,所以必須得在建表之前設定它的值,執行命令pragma auto_vacuum = 1;

mysql刪除資料還占用硬碟空間

我碰到這麼個情況,廢話不多說。針對20億資料,用了truncate 命令來快速清除資料 針對大量資料會有,如果是幾g的sql檔案,不會產生碎片 後面會產生一些bin快取 刪除後,發現磁碟只少一半,delete語句刪除後,實際在磁碟並沒有刪除,只作為乙個標記,把快取手動刪除後,才算真正的刪除 找到安裝...

轉刪除資料庫使用者時占用

ora 01940 無法刪除當前已鏈結的使用者 1 檢視使用者的連線狀況 select username,sid,serial from v session 如下結果 username sid serial netbnew 513 22974 netbnew 514 18183 netbnew 51...

使用SQLite資料庫儲存資料 4 刪除資料記錄

刪除資料記錄 當從uitableview中刪除一行記錄時,將呼叫commiteditingstyle方法。void tableview uitableview tableview commiteditingstyle uitableviewcelleditingstyle editingstyle ...