2013-05-09 155 views
1

我們擁有支持Oracle,MySQL和SQL Server供應商的Java EE應用程序。 我們使用視圖模型來查看從數據庫獲取的數據,也使用DAO模型中的分頁,而且目前爲止效果很好,但現在我們正在處理數百萬條記錄,例如1000萬,這給我們帶來了一個大問題因爲我們的應用性能問題變得非常糟糕。經過一些調查後,我們發現查詢中的順序導致數據庫級別的緩慢,但我們仍然需要使用它。使用Java EE處理大量數據

現在的問題是:是否有任何技術來處理這種具有良好性能(響應時間和內存問題)的數據量?

+1

有很多,他們大多不會適合您的情況。這超出了SO的界限。我建議http://programmers.stackexchange.com/。 – BevynQ 2013-05-09 07:56:24

回答

2

如果您頻繁使用ORDER BY子句,則應在您訂購的字段上創建一個索引。這將大大提高訂購性能(但當然會稍微放慢插入)。

+0

嗨Michal Borek,謝謝你的回答。 我們有一個25-30列的平均值,至少有32個外鍵(子表),這對所有這些列執行索引是否有害。 – Salah 2013-05-09 08:11:37

+1

32個外鍵和一個1000萬行表,聽起來像一些重構可能也有幫助 – DaveRlz 2013-05-09 11:09:12

+0

@JUBA我認爲你必須平衡多少個索引,把它們放在你最經常訂購的地方。你也可以將它與高速緩存結合起來,因爲我猜想其他一些查詢會被更頻繁地調用。 – 2013-05-09 11:15:13