2014-10-07 62 views
6

在我的應用程序中,我連接到一個H2數據庫,最近我正在研究這個數據庫是如何關閉的。關閉H2數據庫;緊湊與碎片整理?

在我的連接字符串我有根據H2 DOC

每次數據庫是封閉的,它是完全碎片整理(SHUTDOWN磁盤碎片整理程序)設置DEFRAG_ALWAYS=true

現在我假設當JVM關閉時,關閉鉤子將關閉數據庫並對其進行碎片整理(就像執行SHUTDOWN DEFRAG一樣)。

但是如果我在退出應用程序之前執行SHUTDOWN COMPACT,而在連接字符串中應用了DEFRAG_ALWAYS=true,那麼將使用哪個關閉進程?

回答

6

如果您手動執行shutdown,則優先於設置(defrag_always=true)。所以如果你執行shutdown compact,那麼這就完成了,defrag沒有完成。如果您執行shutdown defrag,則無論設置如何,都會執行此操作。如果您只是正常關閉數據庫,則使用設置defrag_always