2012-08-21 3 views
14

Ich überlege gerade, eine Anwendung zu erstellen, die die h2-Datenbank als Hauptdatenbank verwendet (weil sie mit JBoss geliefert wird), aber ich bin etwas besorgt darüber. Ich habe an einigen Stellen (vor allem Diskussionsrunden) gelesen, dass man h2 nicht in der Produktion verwenden sollte. Gibt es dafür bestimmte Gründe?Gibt es Gründe, warum die h2-Datenbank nicht in der Produktion verwendet werden sollte?

+3

ähnlich wie: http://stackoverflow.com/questions/4687156/how-reliable-is-h2-database – TJD

+0

Vielen Dank für die Anweisung mich dort. Wenn es noch etwas hinzuzufügen gibt, freue ich mich auch zu lesen, da diese Antworten 18 Monate alt sind. – bjedrzejewski

+0

Die zweite Antwort auf die verknüpfte Frage bietet einen direkten Link zu der Dokumentation; Dieser Link sollte die Antwort liefern, ob sich die Multithreading-Probleme geändert haben oder nicht. Wenn nicht, ist das ein wichtiger Grund, es nicht in der Produktion zu verwenden, IMO. –

Antwort

15

Die wichtigsten Gründe nicht H2 zu verwenden (oder HSQLDB oder Derby) für die Produktion sind:

  • Wahrscheinlichkeit kritischer Fehler: Im Vergleich zu den 'großen' Datenbanken Oracle, IBM DB 2, MS SQL Server , MySQL, PostgreSQL, die Java-Datenbanken sind relativ neu und daher möglicherweise nicht so stabil (haben Bugs). Beachten Sie, dass dies für alle neueren Produkte gilt, einschließlich NoSQL-Datenbanken und neue Versionen der "großen" Datenbanken. Im Allgemeinen gilt: Je mehr ein Produkt getestet wird, desto geringer ist die Wahrscheinlichkeit von Fehlern. Natürlich hängt es von Ihrem Anwendungsfall ab, ob es sinnvoll ist, für diesen Vorteil (möglicherweise viel Geld) zu zahlen. In jedem Fall müssen Sie die Daten sichern, z. B. im Falle eines Hardwarefehlers.

  • Fehlende Funktionen und Optimierungen: Die 'großen' Datenbanken haben mehr Funktionen und Optimierungen für spezielle Anwendungsfälle. Ob Sie diese Funktionen benötigen oder nicht, bleibt Ihnen überlassen.

  • Kommerzielle Unterstützung: Es ist einfacher, Unterstützung für größere Datenbanken zu erhalten. Bitte beachten Sie auch commercial support is available for H2. HSQLDB bietet auch kommerzielle Unterstützung. IBM hat früher Apache Derby (IBM Cloudscape) unterstützt, aber ich glaube, sie haben aufgehört. nur

+6

Hat sich Ihre Position 2 Jahre später weiterentwickelt? – Stephan

+5

Nein, ich denke, die Situation ist immer noch dieselbe. –

+2

Hat sich Ihre Position 3 Jahre später geändert? : D (mit dem neuen MVStore im Hinterkopf?) –

8

In meiner persönlichen Erfahrung, H2 Version 1.2.147 scheint sehr zuverlässig, 100% Erfolg über 60 Installationen in, aber meine Kunden haben nur relativ kleine Datenbanken (400 MB sind die größeren Größen) und mein Programm verwendet eine Verbindung (lol), erst vor kurzem habe ich mehr als eine Verbindung benutzt, aber mit multi_threaded false. Ich hatte Korruption mit einigen früheren Versionen und ich habe Angst, noch neuere Versionen zu versuchen.

+2

Wenn Sie sagen, dass Sie nur eine Verbindung verwenden, meinen Sie damit, dass nur ein Benutzer auf die Datenbank zugreift, oder wäre dies gleichbedeutend damit, dass sie auf JBoss und JBoss implementiert wird? – bjedrzejewski

1

Für mich ist es kein Problem H2DB in der Produktion für mittelgroße Projekte nicht zu verwenden. Wir haben ein Produktionssystem für ungefähr fünfzehn Kunden implementiert, die alle mit H2DB arbeiten. Wir haben sehr einfache Installationen und Backups erlebt und trotzdem keine Probleme bezüglich der Datenbank.

Verwandte Themen