2011-01-14 25 views
33

Kiedy zadaję to pytanie, widzę, że aktualna wersja bazy danych H2 została wydana w dniu 07-01-2011 (bardzo niedawno). To jest bardzo dobre & zdrowe. Czy to tempo zostanie zachowane? wydarzenie, jeśli tempo nowych wydań będzie wolne, czy będzie wspierane przez społeczność open source na dłuższą metę?Jak niezawodna jest baza danych h2?

Ze względu na koszty, obecnie rozważam użycie PostgreSQL do aplikacji o wysokiej wydajności, a baza danych H2 wydaje się mieć odpowiedni zestaw funkcji (w zasadzie to, czego potrzebuję). Nie jestem tylko pewien, czy byłoby słuszne decyzja o użyciu H2. Zasadniczo moja decyzja powinna opierać się na długoterminowym wsparciu, opartym na subskrypcji lub społeczności.

Odpowiedz

29

Czy to zachowanie zostanie zachowane?

To jest plan.

Czy będzie wspierana przez społeczność open source na dłuższą metę?

Trudno jest przewidzieć przyszłość, dlatego nikt jeszcze nie odpowiedział na twoje pytanie :-) Jestem pewien, że będzie wspierany, ponieważ wystarczająca liczba osób go używa. H2 jest stosowany w wielu produktach (open source i komercyjnych). Dość często odpowiadają na pytania na liście mailingowej. H2 obecnie nie ma wielu użytkowników, jednym z powodów jest to, że użytkownicy są ogólnie zadowoleni z jego funkcji, a ponieważ obecna szybkość rozwoju jest wystarczająco szybka, a jakość kodu jest wystarczająco dobra.

Wsparcie oparte na subskrypcji jest obecnie niedostępne, ale jest to planowane na przyszłość (zawsze był plan udzielenia wsparcia komercyjnego w pewnym momencie). Powodem, dla którego nie jest jeszcze dostępny, jest to, że H2 nie ma jeszcze wystarczającego udziału w rynku, aby założyć firmę.

21

H2 to wspaniały silnik bazy danych. Po rozwiązaniu problemu niezwiązanego z H2 zmieniliśmy z PostgreSQL i MySQL (oba są nadal obsługiwane) na H2. H2 stał się podstawowym wyborem naszej bazy danych.

Szybkość jest głównym powodem, ale są inne: tryb wbudowany jest niesamowity i daje nam elastyczność, aby zainstalować oprogramowanie w urządzeniu przenośnym, a nawet udostępnić bazę danych w chmurze, powiedzmy przez Dropbox!

Nie używamy wielu funkcji, ponieważ jesteśmy "uporczywie zależni" poprzez "Datanucleus" (brak wyzwalaczy, procedur itp.), Ale nasza aplikacja jest na tyle złożona, aby wypchnąć H2! I dostarcza bezbłędnie.

+3

Sugerujesz więc, że H2 jest bardziej zamiennikiem SQLite niż cokolwiek innego? – user1050755

+1

Powiedziałbym, że dokładniej jest powiedzieć: http://database-management-systems.findthebest.com/compare/16-53/H2-vs-SQLite – marcolopes

29

W celu dostarczenia dodatkowych informacji, w 2010 roku zmieniliśmy z H2 na MySQL dla naszych dużych korporacyjnych odłamów bazy danych. Największym powodem było to, że wewnętrzny silnik H2 jest jednot gwintowy. Gdy duże, niezoptymalizowane zapytania będą wyświetlane w naszych bazach danych z setkami tysięcy lub milionów wierszy, wszystkie inne operacje na bazach danych zostaną zatrzymane. Aby uzyskać więcej informacji, patrz H2 documentation. Blokowanie wiersza H2 wydaje się stosunkowo niedojrzałe w porównaniu do MySQL lub Postgres.

Ponadto MySQL i Postgres udostępniają mechanizmy replikacji zamiast toczyć własne. Pozwala nam to również na tworzenie kopii zapasowych naszego systemu baz danych "na żywo" z urządzenia slave, zamiast blokować bazę danych H2 podczas jej zrzucania.

Wreszcie, mimo że nie uruchomiłem tego testu wydajności, podejrzewam, że chociaż H2 szybko się rozjaśnia dla małych i średnich baz danych, w miarę zwiększania rozmiaru bazy danych, a zwłaszcza liczby równoczesnych zapytań, zaczynają się MySQL i Postgres równać się, a następnie najlepiej, jego ogólnej wydajności - szczególnie patrząc na rozkład czasu zapytania.

W dalszym ciągu z powodzeniem używamy H2 do baz danych butików, pamięci i testów. Wielkie dzięki za to Thomasowi!

+0

Zgadzam się. Nie mogłem polecić H2 dla dużych aplikacji klienckich. – marcolopes

+0

@marcolopes Przez "duże" można bezpiecznie przyjąć ponad 50 równoczesnych zapytań na co najmniej 1 milion wierszy? – Matical

+0

Uh, tak. To duże. H2 może działać dobrze, ale podejrzewam, że współbieżne zapytania będą wymagały bardziej rozbudowanego silnika bazy danych, aby działał sprawnie. – Gray

Powiązane problemy