H2 compact 在大数据库上失败

Posted

技术标签:

【中文标题】H2 compact 在大数据库上失败【英文标题】:H2 compact failed on big db 【发布时间】:2013-05-28 07:41:57 【问题描述】:

我有一个使用 h2 数据库的应用程序。 实际上图像存储在 base64 的 CLOB 字段中。但我想将它迁移到 Blob 并解码 base64 值。 迁移在像 300mo 这样的小型数据库上运行良好,并且大小确实减小了。但我有一个 800mo db,迁移后 2400mo ......当我离开应用程序时,db 并不紧凑(我设置 -Dh2.maxCompactTime=120000)。

我不知道为什么,也许我忘记了什么?

【问题讨论】:

【参考方案1】:

完全压缩数据库的最简单方法是运行语句SHUTDOWN COMPACT

如果数据库还没有完全压缩,如果您打开然后再次关闭它(但前提是您关闭所有连接),它会进一步缩小。

要完全压缩数据库,最好创建一个SQL脚本(例如使用SCRIPT TO)并重新创建数据库(例如使用RUNSCRIPT)。

【讨论】:

谢谢,最后我编写了脚本并重新构建了我的数据库,一切正常。导致 SHUTDOW COMPACT 什么都不做

以上是关于H2 compact 在大数据库上失败的主要内容,如果未能解决你的问题,请参考以下文章

VB6 ADODB 因 SQL Compact 失败:多步操作生成错误

H2 数据库在 playframework2 中失败

删除约束后 h2 删除列失败

GCS 加密总是在大文件上失败

LibSVM 在大特征向量上失败 (SEGFAULT)

Spring Boot 2 - H2 数据库 - @SpringBootTest - org.h2.jdbc.JdbcSQLException 失败:表已存在