关闭H2数据库; Compact vs Defrag?

时间:2014-10-07 20:33:16

标签: java h2

在我的应用程序中,我连接到H2数据库,我最近正在研究如何关闭此数据库。

在我的连接字符串中,我设置了DEFRAG_ALWAYS=true,根据H2 doc

  

每次关闭数据库时,都会对其进行完全碎片整理(SHUTDOWN DEFRAG)。

现在我假设当JVM关闭时,关闭挂钩将关闭数据库并对其进行碎片整理(就像执行SHUTDOWN DEFRAG)。

但是如果我在退出应用程序之前执行SHUTDOWN COMPACT,同时在连接字符串中应用DEFRAG_ALWAYS=true,将使用哪个关闭过程?

1 个答案:

答案 0 :(得分:7)

如果您手动执行shutdown,则优先于设置(defrag_always=true)。因此,如果您执行shutdown compact,则执行此操作,并且defrag未完成。如果您执行shutdown defrag,则无论设置如何,都会完成此操作。如果您只是正常关闭数据库,则使用设置defrag_always