2010-01-26 170 views
8

我們現在正在研究是否將我們的postgresql數據庫切換到嵌入式Derby數據庫。兩者都將使用glassfish 3作爲我們的數據層。任何人有任何意見或知識可以幫助我們做出決定?Derby vs PostgreSql性能比較

謝謝!

編輯:我們現在正在編寫一些性能測試。尋找答案更多的根據經驗/第一手知識

+2

我的預測:正確調整PostgreSQL將吸引德比,但最瑣碎的查詢。爲什麼你想離開PostgreSQL?你花時間調整數據庫嗎? – intgr 2010-12-08 22:00:57

回答

3

還沒有直接比較PostgreSQL的德比。然而,在不同的情況下,我發現德比是高度可靠的。但是,您需要關注Derby配置以確保它適合您的應用程序需求。

+1

+1。堅如磐石的可靠性,低內存佔用空間和部署彈性(嵌入式,網絡服務器,嵌入式+網絡服務器)確實是其最大的優勢。 – 2012-03-19 13:48:09

+0

我知道Postgresql是比較成熟的db。不過,我一直在使用Derby來處理重型數據庫處理應用程序,並且似乎無法從性能,大小和可靠性角度找到任何限制。 – donlys 2016-12-12 17:08:45

1

有許多性能測試套件作爲Derby源代碼分發本身的一部分包含在內;他們被德比開發人員用來進行他們自己的德比性能測試。所以如果你需要性能測試的例子,或者想要更多的例子,你可以考慮使用這些。在Derby源代碼分發中查找名爲java/testing/org/apache/derbyTesting/perf的子目錄。

6

Derby的性能還是比較慢,但是......只要你的Java應用程序運行到你的數據庫服務器去,完全獨立於平臺。您甚至不需要考慮在將Java應用程序複製到的位置安裝數據庫服務器。

我在Java中使用MySQL,但在我的Java應用程序中嵌入實現您的數據庫服務器只是令人驚歎和前所未有的生產力,自由度和靈活性。

隨時隨地在任何平臺上隨時隨地都有一個DB服務器,對我來說只是天堂!

13

我知道我在這裏發佈答案的時間已晚,但我想確保將來沒有人會因使用Derby而超過任何生產質量的數據庫。我很抱歉提出這個答案有多麼負面 - 我試圖在一個簡短的答案中捕捉整個工程團隊的不愉快感受。

我們在許多小型客戶部署中使用Derby的經驗使我們嚴重懷疑它對除測試環境之外的其他任何東西是多麼有用。有些問題我們有:由鎖升級

  • 死鎖 - 這是最大的一個,並恰好一個客戶大約每隔兩個星期
  • 中斷的I/O的原因德比以徹底失敗在Solaris(可能無法在其他平臺問題) - 我們必須建立一個墊片,以保護其免受這些故障
  • 無法處理它的MySQL/PostgreSQL的會輕鬆
  • 處理複雜查詢
  • 巴吉事務日誌執行造成表損壞這需要我們導出數據庫,然後重新導入它(不能只刪除損壞的表),我們仍然失去了在這個過程中表 - 謝天謝地我們有一個備份
  • 沒有LIMIT語法
  • 對於複雜查詢低性能
  • 用於大型數據集

由於這一事實,低性能,它的嵌入式,德比與SQLite相比,它更像是PostgreSQL,它是一個非常成熟的生產質量數據庫,用於存儲世界上一些最大的網站的PB級數據集。如果你想爲增長做好準備,並且不想被調試別人的數據庫代碼,我建議不要使用Derby。我對SQLite沒有任何經驗,但我無法想象它比Derby對我們的可靠性仍然不如以前那麼受歡迎。

事實上,我們現在正在移植到PostgreSQL。