2010-04-01 28 views
0

我打算將db4o用於網站。這是一個微博網站,有一些小帖子和用Java開發的評論。網站的對象數據庫

事情是我聯繫db4o支持詢問db4o是否適合一個網站,他們回答說,只適用於低併發性的網站。這意味着幾乎沒有要求?

所以,現在我認爲db4o不會是一個不錯的選擇。

您是否知道是否有任何適用於Java的Java對象數據庫?

回答

0

請勿使用對象數據庫。許多基於它們的項目都失敗了。關係數據庫在許多項目中都得到了驗證,因此可以使用MySQL,H2,Derby,Oracle或任何其他關係數據庫來滿足您的需求。

如果您想嘗試一些新功能,請使用基於Map-Reduce的商店或基於文檔的商店,如Hadoop,Cassandra,CouchDB等。 http://nosql-database.org/

+0

從技術上講,這並不能回答我的問題......但經過大量研究後,我發現你是對的。 所以我決定使用基於文檔的數據庫:MongoDB(http://www.mongodb.org/) – Damian 2010-04-03 15:09:55

0

如果你需要一個對象數據庫,你可以看看PostgreSQL。它是免費/開源的,並且很好地處理了併發。

+0

雖然我不認爲這個問題真的能夠回答這個問題,但我可以很容易地保證PostgreSQL - 我們公司迄今爲止總共有大約400人年的經驗值,而且我們已經看到了完全沒有崩潰的情況,性能和對SQL標準的支持。 – Esko 2010-04-01 18:39:02

+1

@NebuSoft PostgreSQL是一個關係數據庫引擎。如果要在OO DBMS的上下文中提及,那僅僅是因爲它支持模式繼承的形式(例如在表之間)。 OO DBMS需要直接並透明地使用對象並持久保存它們:PostgreSQL不提供這種功能。 – 2010-04-01 18:41:42

+0

@Esko 就這樣我們很清楚,PostgreSQL是我的不。一個商業信息系統的選擇(我每天所做的工作),但這與問題無關。 – 2010-04-01 18:44:11

0

我想這裏沒有那麼多的選擇。 Caché可能是有道理的,儘管我只聽說過一個團隊正在使用它,而他們的系統失敗了,所以這個項目被取消了,所以性能方面非常糟糕(特別是併發用戶數量增長)。你可以在任何數據庫中表現出悲慘的表現,但是在我試用之前,我希望聽到一個積極的,真實的基於Caché的系統。

0

我會使用像hibernate這樣的ORM映射到傳統的關係數據庫。

2

這些都是很好的java解決方案,我猜你可以使用(沒有對象數據庫解決方案,但我沒有聽到很多關於這個,所以我會解僱他們)。

  • Cassandra:卡桑德拉肯定的尺度真的很好根據大牌球星:Digg的,Twitter等我也在找這個,我想你也應該看看這個。我不認爲這是一個簡單的解決方案,但學習這一點肯定會對你有利。
  • FleetDB:FleetDB是一個針對敏捷開發而優化的無模式數據庫。
  • Neo4j:您可以將Neo4j視爲具有成熟穩健數據庫所有功能的高性能圖形引擎。程序員使用面向對象,靈活的網絡結構,而不是使用嚴格和靜態表格 - 但享受完全事務性,企業級數據庫的所有好處。
  • Hbase:HBase是一個開源的,分佈式的,面向列的存儲,仿照Google的Bigtable:一種用於結構化數據的分佈式存儲系統。
  • H2:在Java SQL數據庫
0

OrientDB是一個多模式的開源的NoSQL數據庫管理系統。多模型意味着它基本上是圖形數據庫/文檔數據庫,但也有由db4o實現的Object API。它也有SQL查詢接口。

其他答案表明,對象數據庫通常不積極開發。我同意。但是OrientDB是包含Object API的多模型,並且自2016年4月起積極開發。

對於網站開發,OrientDB適用於小型或大型網站的可擴展性方面,因爲它支持多主複製。當您的網站獲得更多流量時,您可以增加OrientDB節點的數量並對流量進行負載平衡。