2012-08-21 3 views
14

Sto pensando di creare un'applicazione che utilizza il database h2 come database principale (perché viene fornito con JBoss), ma sono un po 'preoccupato. Ho letto in alcuni punti (principalmente i forum di discussione) che non si dovrebbe usare h2 in produzione. Ci sono ragioni specifiche per questo?Ci sono motivi per cui il database h2 non dovrebbe essere usato in produzione?

+3

simile a: http://stackoverflow.com/questions/4687156/how-reliable-is-h2-database – TJD

+0

Grazie per avermi diretto lì. Se c'è qualcosa in più da aggiungere, sono felice di leggere anche perché queste risposte hanno 18 mesi. – bjedrzejewski

+0

La seconda risposta alla domanda collegata fornisce un collegamento diretto alla documentazione; quel collegamento dovrebbe fornire la risposta sull'eventuale modifica dei problemi di multithreading. In caso contrario, questo è un motivo importante per non utilizzarlo in produzione, IMO. –

risposta

15

Le principali ragioni per non usare H2 (o HSQLDB, o Derby) per la produzione sono:

  • Probabilità di bug critici: rispetto alla 'grande' database Oracle, IBM DB 2, MS SQL Server , MySQL, PostgreSQL, i database Java sono relativamente nuovi e quindi probabilmente non altrettanto stabili (hanno bug). Si noti che questo è vero per tutti i nuovi prodotti, compresi i database NoSQL e le nuove versioni dei database "grandi". Generalmente, più un prodotto viene testato, minore è la probabilità di errori. Naturalmente dipende dal tuo caso d'uso se ha senso pagare (forse un sacco di soldi) per questo vantaggio. In ogni caso sarà necessario eseguire il backup dei dati, ad esempio in caso di guasto dell'hardware.

  • Mancano caratteristiche e ottimizzazioni: i "grandi" database hanno più funzionalità e ottimizzazioni per casi di utilizzo speciale. Che tu abbia bisogno o meno di queste funzionalità, dipende da te.

  • Supporto commerciale: è più facile ottenere supporto per database più grandi. Si prega di notare commercial support is available for H2 pure. HSQLDB fornisce anche supporto commerciale. IBM forniva supporto per Apache Derby (beh, IBM Cloudscape), ma credo che si siano fermati.

+6

La tua posizione si è evoluta 2 anni dopo? – Stephan

+5

No, penso che la situazione sia sempre la stessa. –

+2

La tua posizione è cambiata 3 anni dopo? : D (con il nuovo MVStore in mente?) –

8

Nella mia esperienza personale, H2 versione 1.2.147 sembra molto affidabile, il 100% Successo in circa 60 installazioni, ma i miei clienti hanno solo relativamente piccole basi di dati (400 MB sono i formati più grandi) e il mio programma utilizza solo una connessione (lol), solo recentemente ho iniziato a utilizzare più di una connessione ma con multi_threaded false. Ho avuto delle corruzioni con alcune versioni precedenti e ho paura di provare ancora le versioni più recenti.

+2

Quando si dice di utilizzare una sola connessione, si intende un solo utente che accede al database o equivarrebbe a farlo distribuire su JBoss e JBoss gestendolo? – bjedrzejewski

1

Per me, non c'è reaseon per non utilizzare H2DB in produzione per progetti di medie dimensioni. Abbiamo implementato un sistema di produzione per circa quindici clienti tutti utilizzando H2DB, abbiamo sperimentato installazioni e backup molto semplici e ancora zero problemi relativi al database.