web-dev-qa-db-fra.com

Quel est le meilleur H2 ou HSQLDB?

HSQLDB 2.0 va bientôt sortir. Je me demande s'il surpassera H2 car, à ma connaissance, la plupart des utilisateurs préfèrent H2 à HSQLDB. Je suis intéressé par le support MVCC de HSQLDB 2.0. J'ai appris que MVCC sur H2 est encore expérimental. En ce qui concerne le support/la documentation, la simultanéité, les performances, quel est le meilleur entre les deux?

82
dexter

Veuillez noter que j'avais fourni cette réponse en 2011. Elle peut être obsolète

Mon entreprise développe une bibliothèque d'abstraction de base de données ( jOOQ ), qui prend en charge les deux bases de données. Nos tests d'intégration couvrent de nombreuses fonctionnalités, notamment l'appel de procédures et fonctions stockées, de tableaux, de sélections imbriquées, etc. J'expérimente HSQLDB 2.1 pour être légèrement plus rapide que H2 1.3 pour les petites bases de données en ce qui concerne DML.

Cependant, HSQLDB surpasse fortement H2 dans les opérations DDL ainsi que lors du démarrage/arrêt de l'instance, même pour une petite base de données (en raison de la compilation de H2 des fonctions stockées à nouveau avec javac à chaque démarrage de la base de données!). Cela dépend de la façon dont vous stockez les fonctions stockées. Apparemment, c'est un "problème" plutôt spécifique à jOOQ, voir aussi le commentaire de Thomas Mueller.

D'un autre côté, je suis d'accord avec l'utilisateur trashgod, vous devez tester les performances par rapport à un schéma et un cas d'utilisation raisonnables pour vous-même.

61
Lukas Eder

HyperSQL et H2 Database sont assez transparents, donc les tests peuvent être la meilleure approche pour déterminer celle qui convient le mieux à une utilisation particulière. Des comparaisons impliquant n et autre sont disponibles. Ils partagent un héritage commun, et les deux sont opensource .

45
trashgod