我有一個 h2 資料庫檔案,檔案大小已增長到 5GB。我洗掉了一些資料以減小檔案的大小。但是即使從資料庫中洗掉了一半的記錄,檔案大小仍然保持不變。
我已經嘗試了以下所有選項來減小資料庫大小,但沒有一個對我有用。
1. Executed shutdown compact (after closing all the connection).
2. Executed shutdown defrag.
3. Executed checkpoint.
4. Used the property MV_STORE=FALSE along with the database url.
5. Used the property RETENTION_TIME=30000 along with the database url.
我的連接字串如下所示:
"jdbc:h2:" <db file path>;MVCC=TRUE;DEFAULT_LOCK_TIMEOUT=10000;COMPRESS=TRUE;
筆記 :
- 我們正在關閉我們打開的交易。
- 我們的檔案中沒有 5GB 的資料。
任何人都可以建議我解決或修復以減少我的資料庫大小
uj5u.com熱心網友回復:
因為當您從資料庫中洗掉一些記錄時,資料檔案不會減少。這是由于性能原因。因此 h2 將替換檔案中的位元組塊或追加新的位元組塊,但不會洗掉任何內容,因為它需要重寫整個檔案。
要么您沒有像您認為的那樣進行壓縮,要么您沒有洗掉有意義的(數量)資料。
uj5u.com熱心網友回復:
通常檔案大小遠大于資料大小,因為其中保存了多個版本的資料以適應并發事務處理。
要減小檔案大小,請使用“shutdown defrag”或“shutdown compact”(它們現在相同),假設您使用的是最新版本。
這是將檔案大小降低到資料大小(大致)的唯一方法。升級,如果它是 1.4.197 或更早版本。
你的行為 3)、4)、5) 對我沒有任何意義。如果有的話,我會有 RETENTION_TIME=0。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/457266.html
