2014-05-07 2 views
2

Nous sommes en train de choisir un nouveau design pour notre application (changement de DB inclus) et nous avons envisagé des bases de données d'objets (en particulier db4o).Object DB vs Classic MySQL

Nous avons construit un test de référence et, étonnamment, jusqu'à présent, tous les tests indiquent qu'une implémentation Hibernate + MySQL est plus rapide à extraire qu'une base de données d'objets.

Certes, il y a beaucoup de variables en fonction de la façon dont le test a été conçu et exécuté, le jeu de données de test et ainsi de suite, si je lis correctement les résultats ci-dessous:

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

Cette montre également une implémentation de MySQL pour être meilleur. Ce que nous aimerions savoir, c'est ce qui pourrait rendre les bases de données objet plus lentes que MySQL (disons les mauvaises pratiques) et comment les éviter. Et si elles sont en effet plus lentes, alors quels sont les avantages d'une telle base de données (jusqu'à présent, nous avons surtout lu sur les vitesses de lecture/écriture des objets dbs comme supérieures à celles de SQL).

Répondre

3

Toutes les bases de données objet ne sont pas égales, certaines sont plus rapides et certaines sont beaucoup plus lentes.

Puisque vous avez mentionné JPAB, vous devriez également vérifier d'autres pages, par ex.

Mais considérez également que la page que vous avez mentionnée montre que la combinaison de DataNucleus avec db4o est extrêmement lente. Il ne dit rien sur db4o sans DataNucleus ou DataNucleus sans db4o, ce qui peut être mieux. Quoi qu'il en soit, il existe d'autres bases de données d'objets, notamment Versant Object Database et notre propre ObjectDB, qui sont beaucoup plus rapides. Essayez de créer une application de test dans laquelle MySQL/Hibernate est plus rapide que Versant Object Database, ObjectStore ou ObjectDB, et vous verrez que c'est beaucoup plus difficile.