2017-02-03 35 views
1

我正在使用mysql表並希望在單個查詢中獲取超過10百萬的數據用於報告目的。使用休眠提取數百萬記錄表的最佳方法

我的表也可能包含外鍵。我正在使用hibernate查詢來獲取數據。僅查詢部分需要大約20-30秒。

有沒有一種方法可以優化這個?索引mysql中的表將會有幫助嗎?

+7

「有沒有一種方法可以對此進行優化?」是的,不要使用Hibernate進行報告。 – Kayaman

+0

_在mysql中添加表格會有幫助嗎?_當然。沒有索引,這需要搜索沒有引用。但是,你怎麼能有這麼多的數據沒有索引... – AxelH

+0

嗯,我懷疑傳輸數據需要相當一段時間。只需返回一個計數或儘可能少的數據來檢查您的查詢。還請在您的查詢中調用explain以查看它是否可以在某處進行優化。儘管如此,Hibernate會爲創建實體增加開銷。另一方面,如果您只選擇實體屬性/字段而不選擇整個實體,則可以檢查是否繞過Hibernate,即使用普通SQL代替。 – Thomas

回答