我们正在为我们的应用程序选择新设计(包括数据库更改),我们正在考虑对象数据库(特别是 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/