Skip to content

sqlite

手動壓縮Sqlite解決刪除資料後db檔案大小不變

最近在處理一個小型專案,在測試期間對Sqlite讀寫近千萬筆的資料後,當測試完畢後整個Table drop。

DB檔案占用磁碟大小卻沒有任何改變,讓我非常困惑到底發生甚麼事情。

SQLite 官方文件裡有完整概念說明,當sql資料刪除後並不會把資源還回去,而是會記錄到一個閒置空間的表單,如果有資料要再次寫入會優先利用這些空間。

當然可以在建立DB時設定自動回收的模式,但有機會造成DB更加碎片化而導致效能低落。

故直接使用手動方式執行命令,讓DB重建資料順序及空間的方式來進行處理。

Read More »手動壓縮Sqlite解決刪除資料後db檔案大小不變