在我的应用程序中,我连接到H2数据库,我最近正在研究如何关闭此数据库。
在我的连接字符串中,我设置了DEFRAG_ALWAYS=true
,根据H2 doc
每次关闭数据库时,都会对其进行完全碎片整理(SHUTDOWN DEFRAG)。
现在我假设当JVM关闭时,关闭挂钩将关闭数据库并对其进行碎片整理(就像执行SHUTDOWN DEFRAG
)。
但是如果我在退出应用程序之前执行SHUTDOWN COMPACT
,同时在连接字符串中应用DEFRAG_ALWAYS=true
,将使用哪个关闭过程?
答案 0 :(得分:7)
如果您手动执行shutdown
,则优先于设置(defrag_always=true
)。因此,如果您执行shutdown compact
,则执行此操作,并且defrag
未完成。如果您执行shutdown defrag
,则无论设置如何,都会完成此操作。如果您只是正常关闭数据库,则使用设置defrag_always
。