2012-08-21 8 views
14

Ostatnio rozważam stworzenie aplikacji, która używa bazy danych h2 jako głównej bazy danych (ponieważ jest dostarczana z JBoss), ale jestem trochę zaniepokojona. Czytałem w kilku miejscach (głównie na forach dyskusyjnych), że nie należy używać h2 w produkcji. Czy istnieją konkretne powody?Czy istnieją powody, dla których baza danych h2 nie powinna być wykorzystywana w produkcji?

+3

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

+0

Dziękuję za skierowanie mnie tam. Jeśli jest coś ekstra do dodania, również jestem szczęśliwy, ponieważ te odpowiedzi mają 18 miesięcy. – bjedrzejewski

+0

Druga odpowiedź na powiązane pytanie zapewnia bezpośredni link do dokumentacji; ten link powinien zawierać odpowiedź na pytanie, czy problemy związane z wielowątkowością uległy zmianie. Jeśli nie, jest to główny powód, aby nie używać go w produkcji, IMO. –

Odpowiedz

15

głównych powodów, aby nie używać H2 (lub hsqldb lub Derby) do produkcji są:

  • Prawdopodobieństwo błędów krytycznych: w porównaniu do 'duże' baz danych Oracle, IBM DB 2, MS SQL Server , MySQL, PostgreSQL, bazy danych Java są stosunkowo nowe i dlatego prawdopodobnie nie są tak stabilne (mają błędy). Należy pamiętać, że dotyczy to wszystkich nowszych produktów, w tym baz danych NoSQL i nowych wydań "dużych" baz danych. Ogólnie rzecz biorąc, im więcej testowany jest produkt, tym mniejsze prawdopodobieństwo wystąpienia błędów. Oczywiście to zależy od twojego przypadku użycia, czy ma sens płacić (prawdopodobnie dużo pieniędzy) za tę przewagę. W każdym przypadku będziesz musiał wykonać kopię zapasową danych, na przykład w przypadku awarii sprzętu.

  • Brakujące funkcje i optymalizacje: "duże" bazy danych mają więcej funkcji i optymalizacje do specjalnych zastosowań. To, czy potrzebujesz tych funkcji, zależy od Ciebie.

  • Wsparcie komercyjne: łatwiej jest uzyskać wsparcie dla większych baz danych. Pamiętaj także o commercial support is available for H2. HSQLDB zapewnia również wsparcie komercyjne. IBM zapewniał wsparcie dla Apache Derby (dobrze, IBM Cloudscape), ale uważam, że przestali.

+6

Czy twoja pozycja ewoluowała 2 lata później? – Stephan

+5

Nie, myślę, że sytuacja jest wciąż taka sama. –

+2

Czy Twoja pozycja uległa zmianie 3 lata później? : D (z myślą o nowym MVStore?) –

8

W moim osobistym doświadczeniem, H2 w wersji 1.2.147 wydaje się bardzo wiarygodne, 100% Sukces w około 60 instalacjach, ale moi klienci mają jedynie stosunkowo małych baz danych (400 MB są większe rozmiary) i mój program wykorzystuje tylko jedno połączenie (lol), dopiero niedawno zacząłem używać więcej niż jednego połączenia, ale z błędem multi_threaded. Miałem zepsucie w poprzednich wersjach i boję się wypróbować nowsze wersje.

+2

Kiedy mówisz, że używasz tylko jednego połączenia - masz na myśli tylko jednego użytkownika uzyskującego dostęp do bazy danych, czy też byłoby to równoznaczne z wdrożeniem go na JBoss i JBoss zarządzającym nim? – bjedrzejewski

1

Dla mnie nie ma potrzeby, by nie używać H2DB w produkcji dla średnich projektów. Wdrożyliśmy system produkcyjny dla około piętnastu klientów przy użyciu H2DB, doświadczyliśmy bardzo łatwych instalacji i tworzenia kopii zapasowych, a jednocześnie zero problemów związanych z bazą danych.