我想在具有 5 到 30 个客户端的服务器中使用 HSQLDB +Hibernate,这些客户端将相当密集地写入数据库。
每个客户端将每 30 秒(24/7,大约 10 亿行/天)在一个表中保留十几万行,并且客户端还将在随机时间或多或少地在数据库中查询几千行每 5 到 10 秒两次请求的平均频率。
HSQLDB 可以处理这样的用例还是应该切换到 MySQL/PostgreSQL ?
我想在具有 5 到 30 个客户端的服务器中使用 HSQLDB +Hibernate,这些客户端将相当密集地写入数据库。
每个客户端将每 30 秒(24/7,大约 10 亿行/天)在一个表中保留十几万行,并且客户端还将在随机时间或多或少地在数据库中查询几千行每 5 到 10 秒两次请求的平均频率。
HSQLDB 可以处理这样的用例还是应该切换到 MySQL/PostgreSQL ?
您正在查看每秒总共 2000 - 12000 次写入和 5000 - 30000 次读取。
借助快速硬件,HSQLDB 可能可以使用持久内存表来处理这个问题。使用 CACHED 表,它可能能够处理固态磁盘的较低范围(磁盘寻道时间是主要参数)。
看这个测试。您可以使用 MySQL 和 PostgresSQL 运行它以进行比较。
你应该换。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)