java - 对象数据库与经典 MySQL

标签 java mysql hibernate db4o object-oriented-database

我们正在为我们的应用程序选择新设计(包括数据库更改),我们正在考虑对象数据库(特别是 db4o)。

我们已经构建了一个基准测试,令人惊讶的是,到目前为止,所有测试都表明 Hibernate + MySQL 实现比对象数据库更快地检索。

当然,有很多变量取决于测试的设计和运行方式、测试数据集等,但是如果我正确阅读以下结果:

http://www.jpab.org/Hibernate/MySQL/server/DataNucleus/DB4O/embedded.html

这也表明 MySQL 实现更好。

我们想知道的是什么会使对象数据库比 MySQL 更慢(比方说坏习惯),以及如何避免它们。如果它们确实更慢,那么这种数据库的优势是什么(到目前为止,我们主要阅读的是对象数据库的读/写速度高于 SQL 的读/写速度)。

最佳答案

并非所有的对象数据库都是平等的,有些更快,有些则慢得多。

既然你提到了 JPAB,你也应该检查其他页面,例如 http://www.jpab.org/Hibernate/MySQL/server/ObjectDB/ObjectDB/embedded.html

但还要考虑到您提到的页面显示 DataNucleus 与 db4o 的组合非常慢。它没有提到没有 DataNucleus 的 db4o 或没有 db4o 的 DataNucleus,这可能更好。不管怎样,还有其他对象数据库,包括 Versant Object Database 和我们自己的 ObjectDB,速度要快得多。

尝试创建一个测试应用程序,其中 MySQL/Hibernate 比 Versant 对象数据库、ObjectStore 或 ObjectDB 更快,您会发现这要困难得多。

关于java - 对象数据库与经典 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23521217/

相关文章:

hibernate - 如何将 Hibernate Envers 审计表存储到不同的模式中?

java - 为什么 tomcat-maven-plugin 试图部署到错误的 URL?

java - 如何使用 Spring Security 提供多种身份验证方式

mysql - 如何使用谷歌脚本连接到 db4free,net mysql 数据库

c# - 在 MVC 中同时将数据写入两个表时遇到问题

java - 无法为我的实体生成 UUID ID

java - 在 SessionFactory 中获取 NullPointerException

java - 我应该使用哪种 java swing 布局

java - Bean 在不使用 @Autowired 的情况下被注入(inject)

mysql - 找到用户问题答案匹配百分比的最佳方法是什么?