2012-01-11 149 views
8

我正在尋找一個數據庫,我可以使用這個數據庫來存儲多年來某些庫存的數據。可能會有幾千條記錄。我正在用Java和Clojure編寫一個應用程序,它將在需要顯示數據時從此本地數據庫提取數據。用於本地存儲的數據庫

我想知道是否有人知道一個好的數據庫來處理這個目的?我只有在服務器端運行MySQL的經驗。

哪個數據庫最容易在Clojure和Java中用於本地存儲?

感謝,

亞當

回答

13

JDK 6和更大的捆綁了Java DB這足夠讓你的使用情況。

+1

Java DB與Apache Derby相同。我認爲這只是想要確認是否存在重大差異? – adamjmarkham 2012-01-12 23:23:50

+1

@adamjmarkham「Sun表示,它將把Apache Derby與它的補丁結合起來,稱之爲」Java DB「。此舉爲Sun對日益增長的開源應用程序的支持增添了另一個數據庫。」從http://www.internetnews.com/dev-news/article.php/3570696/Sun+Backs+Apache+Derby+With+Java+DB。htm – 2012-01-13 00:31:24

3

對於這種小規模的應用程序,如果您選擇了許多好的embedded Java databases之一,它幾乎肯定是最容易的。

我個人的最佳選擇很可能是:

  • H2 - 可能是最好的性能純Java數據庫的整體,如果你相信在運行時,他們的benchmarks那麼它比MySQL要快,實際上大多數其他數據庫單機環境。
  • Apache Derby - 良好的多面手,成熟並得到廣泛支持(甲骨文已包括在最近的JDK品牌爲Java DB版本)

之後,你應該能夠使用它們很容易地使用標準的JDBC工具集,所以與MySQL沒有多大區別。

如果您使用Clojure與SQL數據庫進行交互,那麼您絕對應該看看Korma

+1

請注意,此處提到的「Apache Derby」已被吸收到Java中並重命名爲「Java DB」;對於同一件事他們只是不同的名字。 Apache Derby曾經是一個獨立的產品。我研究了差異,甚至在功能或性能方面找不到足夠的理由向項目添加不同的jar文件,所以我使用Java DB。 – arcy 2012-01-11 02:11:29

+0

嗯,糾正我,如果我錯了,但不只是在JDK的Java DB?如果您想要部署到JRE上的最終用戶(或運行較早的JDK的用戶),那麼您仍然需要額外的jar文件...... – mikera 2012-01-11 02:19:46

3

我已經使用Apache Derby作爲類似的應用程序(儘管主要以Java編寫)。他們已經運行了近四年,並且執行了超過6萬次交易,沒有發生重大問題。只是偶爾的錯誤。

Derby與JavaDB的數據庫是相同的,但是使用Derby可以更容易地跟上發行版,因爲您可以將其作爲依賴包括在內,而不是等待下一個JDK版本何時發佈。

此外,IIRC,JavaDB僅包含在JDK中,而不包含在JRE中。

2

根據數據和應用程序的性質以及使用新數據庫模式的意願和/或限制,您可能還需要考慮面向文檔的數據庫之一MongoDB或CouchDB。如果您的數據和應用程序是面向SQL的,請使用其中一個建議的數據庫。