web-dev-qa-db-fra.com

Quelle est la fiabilité de la base de données h2?

Lorsque je pose cette question, je constate que la version actuelle de la base de données H2 a été publiée le 07-01-2011 (très récemment). C'est très bon et en bonne santé. Ce rythme sera-t-il respecté? Si le rythme des nouvelles versions est lent, sera-t-il pris en charge par la communauté Open Source à long terme?

Pour des raisons de coût, j’envisage actuellement d’utiliser Postgresql pour une application haute performance et la base de données H2 semble avoir le bon ensemble de fonctionnalités (essentiellement ce dont j’ai besoin). Je ne suis pas seulement sûr que ce serait une bonne décision d'utiliser H2. Fondamentalement, ma décision devrait être basée sur le support à long terme, que ce soit par abonnement ou par communauté.

33
Muthu

Ce rythme sera-t-il respecté?

C'est le plan.

sera-t-il pris en charge par la communauté opensource sur le long terme?

Il est difficile de prédire l’avenir, je suppose que c’est la raison pour laquelle personne n’a encore répondu à votre question :-) Je suis sûr qu’il sera soutenu, car suffisamment de gens l’utilisent. Le H2 est utilisé dans de nombreux produits (open source et commerciaux). Beaucoup répondent régulièrement aux questions de la liste de diffusion. Actuellement, H2 n’a pas beaucoup de committers, notamment parce que les utilisateurs sont généralement satisfaits de ses fonctionnalités et que la vitesse de développement actuelle est suffisamment rapide et que la qualité du code est satisfaisante.

Le support par abonnement n’est actuellement pas disponible, mais cela est prévu pour l’avenir (il a toujours été prévu de fournir un support commercial à un moment donné). La raison pour laquelle il n’est pas encore disponible est que H2 n’a pas encore une part de marché suffisante pour créer une entreprise.

31
Thomas Mueller

Juste pour fournir des informations supplémentaires, en 2010, nous sommes passés de H2 à MySQL pour nos grands fragments de base de données d'entreprise. La principale raison était que le moteur H2 interne est à thread unique. Lorsque des requêtes volumineuses non optimisées sont exécutées sur nos bases de données avec des centaines de milliers ou des millions de lignes, toutes les autres opérations de base de données s'arrêtent. Voir la documentation H2 pour plus d'informations. Le verrouillage des lignes de H2 semble relativement immature par rapport à MySQL ou à Postgres.

De plus, MySQL et Postgres fournissent également des mécanismes de réplication au lieu de les lancer vous-même. Cela nous permet également de sauvegarder notre système de base de données "en direct" de l'esclave au lieu de bloquer une base de données H2 pendant le vidage.

Enfin, bien que je n’aie pas exécuté ce test de performance, je soupçonne que bien que H2 s’éclaire rapidement pour les bases de données de taille petite à moyenne, à mesure que vous augmentez la taille de la base de données et en particulier le nombre de requêtes simultanées, MySQL et Postgres vont commencer à s’égaliser, puis optimiser ses performances globales - en particulier en ce qui concerne la distribution du temps de requête.

Nous continuons à utiliser H2 pour les boutiques, les mémoires et les bases de données d’essai avec beaucoup de succès. Merci beaucoup à Thomas pour cela!

33
Gray

H2 est un moteur de base de données formidable. Après avoir résolu un problème non lié à H2, nous sommes passés de PostgreSQL et MySQL (tous deux toujours pris en charge) à H2. H2 est devenu notre premier choix de base de données.

La vitesse est la raison principale, mais il y en a d'autres: le mode intégré est incroyable et nous donne la possibilité d'installer le logiciel sur un périphérique portable, voire de partager la base de données sur le cloud, via Dropbox!

Nous n'utilisons pas beaucoup de fonctionnalités, car nous sommes "dépendants de manière persistante" via "Datanucleus" (aucun déclencheur, procédure, etc.), mais notre application est suffisamment complexe pour que Push the H2! Et il livre parfaitement.

22
marcolopes

La raison en est que H2 a toujours continué à surperformer. En 2019, H2 est une superbe base de données. Nous l'utilisons dans toutes nos applications autonomes depuis 4 ans et nous constatons qu'il minimise l'écart entre SQLite et MySQL. Il fonctionne aussi vite ou plus vite que MySQL. 

Où H2 est approprié?

  • Applications autonomes
  • Applications Intranet/LAN
  • Déploiements Java uniquement
  • Mode intégré et serveur

Pourquoi est-il meilleur que SQLite?

  • Plus de types de données que SQLite. 
  • Support de type de données booléen. Ce qui n'est pas disponible dans SQLite.
  • Les performances de SQLite ont diminué dans un cas particulier lorsque le nombre de lignes dépassait 50 000 pour environ 15 tables de colonnes (plus ou moins). Nous n'avons pas trouvé ce problème avec H2. Il a continué à fonctionner comme d'habitude.
  • Même s'il ressemble à un fichier unique similaire à SQLite, H2 est chiffré. C'est une base de données multi-utilisateurs, protégée par mot de passe. Cette fonctionnalité n'est pas disponible dans SQLite.
  • L'emballage avec votre application ne coûte qu'environ 2 Mo d'espace.
  • A la console de gestion de base de données intégrée, cela aussi dans le même ~ 2MB.
  • H2 peut être utilisé pour le développement d'applications Android.

Comparaison avec MySQL:

  • Support de type de données booléen. Ce qui n'est pas disponible dans MySQL.
  • Nous voyons maintenant que H2 avait une performance presque égale à MySQL. Parfois, même surperformer lors de l'exécution des requêtes de mise à jour.
  • Nos clients sont heureux de voir un logiciel performant.
  • La raison de l'utiliser sur MySQL est, actuellement, il peut également être utilisé gratuitement dans des applications autonomes commerciales.

Comparaison avec PostgreSQL:

  • Absolument, il est plus rapide que PostgreSQL lorsque l’environnement de travail/déploiement est tel que spécifié au début de cette réponse. 
  • Les opérations de mise à jour avec H2 sont beaucoup plus rapides que PostgreSQL
  • Si quelqu'un essaie de bien comparer H2 avec PostgreSQL, ne le faites pas, comparez plutôt PostgreSQL avec Giant OracleDB. H2 ne peut pas être comparé avec/ne peut pas être remplacé par PostgreSQL.

Il est plus facile à gérer tout en fournissant un support technique. Il peut être partagé aussi facilement qu’un glisser-déposer.

0
AbsoluteDev