Java 关闭H2数据库;压缩还是碎片整理?

Java 关闭H2数据库;压缩还是碎片整理?,java,h2,Java,H2,在我的应用程序中,我连接到一个H2数据库,最近我正在研究这个数据库是如何关闭的 在我的连接字符串中,我设置了DEFRAG\u ALWAYS=true,这是根据H2文档设置的 每次关闭数据库时,都会对其进行完全碎片整理(关闭碎片整理) 现在我假设当JVM关闭时,关闭钩子将关闭数据库并对其进行碎片整理(就像执行shutdown DEFRAG) 但是,如果在退出应用程序之前执行SHUTDOWN COMPACT,同时在连接字符串中应用DEFRAG\u ALWAYS=true,将使用哪个关闭过程 如果手动

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

在我的连接字符串中,我设置了
DEFRAG\u ALWAYS=true
,这是根据H2文档设置的

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

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


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

如果手动执行
shutdown
,则此设置的优先级高于设置(
defrag\u always=true
)。因此,如果执行
shutdown compact
,那么这就是所做的,而
碎片整理
没有完成。如果执行
shutdown defrag
,则无论设置如何,都会执行此操作。如果您只是正常关闭数据库,则使用设置
defrag\u always