H2 数据库可以有多大?
How large can an H2 database be?
H2 数据库可以有多大?我已经将 H2 数据库与我用 Clojure 编写的 Web 应用程序一起使用了大约半年,并且数据库变得非常大: .h2.db 文件的当前大小为 143GB,其中一个 table包含超过 330000 张图像。该应用程序相当 stable,偶尔会因 JVM 垃圾收集器和数据库错误引起暂停,例如 "Missing lob entry." 当前内存占用量约为 6GB,即 acceptable,我能够到目前为止,通过重建数据库从这些数据库错误中恢复。然而,我确实想知道,在迁移到 PostgreSQL 和 MySQL 等多线程数据库引擎之前,我实际上可以保留此设置多长时间,我很想听听那些有使用大型 H2 经验的人的意见数据库。
从技术上讲,这些是限制:
http://h2database.com/html/advanced.html#limits_limitations
但是,现实世界的限制将取决于您的应用程序。例如,如果您只能容忍 5 毫秒的延迟,那么没有索引的 4TB 数据库可能不会减少它。
我想报告,以供将来参考,我最终遇到了 H2 的主要性能和稳定性问题并切换到 HyperSQL (http://hsqldb.org/)。对于我的 Web 应用程序,HyperSQL 比 H2 更稳定,实际上也更快。 HyperSQL 对多线程的支持尤为重要,我没有像使用 H2 那样使用 HyperSQL 损坏数据库。我还使我的应用程序与数据库无关并与 MySQL 和 PostgreSQL 兼容,这两者似乎比 H2 更稳定,对我的应用程序响应更快。我知道 H2 不是为像我这样的大型数据库设计的,但我认为我应该让其他读者了解 运行 大型 H2 数据库的一些后果。
H2 数据库可以有多大?我已经将 H2 数据库与我用 Clojure 编写的 Web 应用程序一起使用了大约半年,并且数据库变得非常大: .h2.db 文件的当前大小为 143GB,其中一个 table包含超过 330000 张图像。该应用程序相当 stable,偶尔会因 JVM 垃圾收集器和数据库错误引起暂停,例如 "Missing lob entry." 当前内存占用量约为 6GB,即 acceptable,我能够到目前为止,通过重建数据库从这些数据库错误中恢复。然而,我确实想知道,在迁移到 PostgreSQL 和 MySQL 等多线程数据库引擎之前,我实际上可以保留此设置多长时间,我很想听听那些有使用大型 H2 经验的人的意见数据库。
从技术上讲,这些是限制: http://h2database.com/html/advanced.html#limits_limitations
但是,现实世界的限制将取决于您的应用程序。例如,如果您只能容忍 5 毫秒的延迟,那么没有索引的 4TB 数据库可能不会减少它。
我想报告,以供将来参考,我最终遇到了 H2 的主要性能和稳定性问题并切换到 HyperSQL (http://hsqldb.org/)。对于我的 Web 应用程序,HyperSQL 比 H2 更稳定,实际上也更快。 HyperSQL 对多线程的支持尤为重要,我没有像使用 H2 那样使用 HyperSQL 损坏数据库。我还使我的应用程序与数据库无关并与 MySQL 和 PostgreSQL 兼容,这两者似乎比 H2 更稳定,对我的应用程序响应更快。我知道 H2 不是为像我这样的大型数据库设计的,但我认为我应该让其他读者了解 运行 大型 H2 数据库的一些后果。