2011-01-14 60 views
33

當我問這個問題時,我發現當前版本的H2數據庫是在07-01-2011(最近)發佈的。這是非常好的&健康。這個步伐會被保留下來嗎?事件如果新版本的發展速度緩慢,開源社區是否會長期支持它?h2數據庫有多可靠?

出於成本考慮,目前我正在考慮使用PostgreSQL用於高性能應用程序和數據庫H2似乎有正確的功能集(基本不管我需要)。我不確定這是否是使用H2的正確決定。基本上,我的決定應基於長期支持,無論是訂閱還是社區。

回答

29

將這種速度保持?

這是計劃。

將它通過開源社區的長期支持?

很難預測未來,我想這就是爲什麼沒有人回答你的問題:-)我相信它會得到支持,因爲足夠的人使用它。 H2用於許多(開源和商業)產品。很多人經常回復郵件列表中的問題。 H2目前沒有很多提交者,其中一個原因是用戶對其特性感到滿意,並且因爲當前的開發速度足夠快並且代碼質量足夠好。

基於訂閱的支持是當前不可用,但是這對未來的計劃(它始終是提供在某些時候的商業支持計劃)。目前還沒有可用的原因是H2尚未擁有足夠的市場份額來創辦一家公司。

21

H2是一個了不起的數據庫引擎。在我們解決了與H2無關的問題後,我們從PostgreSQL和MySQL(兩者都支持)切換到H2。 H2成爲我們主要的數據庫選擇。

速度是主要的原因,但也有其他:嵌入式模式是驚人的,使我們能夠靈活的便攜設備安裝軟件,甚至在雲共享數據庫,讓我們通過Dropbox的說!

我們不使用很多功能,因爲我們通過「Datanucleus」(無觸發器,程序等)「持久依賴」,但是我們的應用程序足夠複雜以推動H2!它完美無瑕。

+3

所以你建議H2比SQLite更能代替SQLite嗎? – user1050755 2013-03-24 08:09:02

+1

我會說這是準確的說:http://database-management-systems.findthebest.com/compare/16-53/H2-vs-SQLite – marcolopes 2013-03-25 21:12:08

29

只是爲了提供一些額外的信息,在2010年我們將我們的大型企業數據庫碎片從H2轉移到MySQL。最大的原因是內部H2引擎是單線程的。當大量未優化的查詢以數百或數百行的數據庫運行於我們的數據庫時,所有其他數據庫操作都將停止。有關更多信息,請參見H2 documentation。與MySQL或Postgres相比,H2的行鎖定似乎相對不成熟。

另外,MySQL和Postgres也提供複製機制,而不是自己滾動。這也使我們能夠從slave上「備份」我們的數據庫系統,而不是在我們轉儲它時阻塞H2數據庫。最後,儘管我還沒有運行這個性能測試,但我懷疑雖然H2對於中小型數據庫來說速度很快,但隨着您增加數據庫大小,尤其是併發查詢的數量,MySQL和Postgres將會啓動以最大限度地提高其整體性能 - 特別是查看查詢時間分佈。

我們繼續在精品店,內存和測試數據庫中非常成功地使用H2。非常感謝托馬斯!