我想在具有5到30个客户端的服务器中使用HSQLDB + Hibernate,这些客户端会相当密集地写入数据库。每个客户端将每30秒(24/24 7/7,大约10亿行/天)在一个表中保留十几行,并且客户端还将在随机时间或多或少地向数据库查询几千行每隔5到10秒,平均频率为几个请求。 HSQLDB可以处理这样的用例还是应该切换到MySQL / PostgreSQL?
您正在查看总计2000 - 12000次写入和每秒5000 - 30000次读取。
使用快速硬件,HSQLDB可以使用持久性内存表来处理这个问题。使用CACHED表,它可以使用固态磁盘处理较低范围(磁盘查找时间是主要参数)。
看到这个测试。您可以使用MySQL和PostgresQL运行它以进行比较。
你应该切换。 HSQLDB不适用于关键应用程序。随着时间的推移,为数据损坏和降低启动性能做好准备
主要的负面宣传来自JBoss:https://community.jboss.org/wiki/HypersonicProduction
另见http://www.coderanch.com/t/89950/JBoss/HSQLDB-production
另见类似问题:Is is safe to use HSQLDB for production? (JBoss AS5.1)