2012-06-30 67 views
2

我想將基於PHP/MySQL的客戶端/服務器應用程序移植爲以Java編寫的獨立桌面應用程序。數據庫已經變得相當大,有數十萬行的表格。我預計這些表可能會增長到超過一百萬條。用於大型數據集的嵌入式Java數據庫

什麼嵌入式數據庫最能處理這個問題? HSQLDB和Sqlite似乎是很明顯的選擇,儘管我猜測其他人也是如此。我的主要優先事項是能夠有效地對大量數據執行查詢(this thread似乎證實了Sqlite可以處理此問題)以及我可以輕鬆導入MySQL中的舊數據(我記得HSQLDB對此很痛苦)。

注:據我所知,比較嵌入式數據庫類似的問題之前已經發布(例如herehere),但由於我的工作重點從考慮到大型數據遷移我認爲它合理的新問題大多數應用程序有所不同。

回答

3

隨着時間的推移,您會擔心的是您是否會因內存不足而無法處理嵌入式數據庫中數百萬行的用戶。

當每個人都擁有64位操作系統和8GB以上的內存時,您將會清楚地瞭解。

我同意只要有足夠的內存,SQLLite或Hypersonic就可以處理它。我很想知道,對於那些記憶力變得稀缺的情況,每個人會做什麼。

您當然可以選擇在服務器模式下運行Hypersonic並讓它將數據保存在磁盤上。這可能是一個有吸引力的選擇,尤其是隨着SSD的普及。您可以保持不需要數據庫安裝的便利,並且仍然可以管理大型數據集而不耗盡可用的RAM。

3

HSQLDB的最新版本用於商業應用程序的千兆字節數據。 HSQLDB的持久性機制已經過全面測試,它的系統使用fsync可以避免數據丟失。查詢優化已改進。使用HSQLDB SqlTool現在很容易從CSV或SQL轉儲數據導入

+0

看起來您擁有專業的hsqldb,fredt附件。我不擔心,但很高興知道這裏所表達的觀點所產生的影響。 – duffymo

+0

是的,我的個人資料包含hsqldb.org網站地址。 – fredt

+0

感謝您的輸入! –