1
我正在使用mysql表並希望在單個查詢中獲取超過10百萬的數據用於報告目的。使用休眠提取數百萬記錄表的最佳方法
我的表也可能包含外鍵。我正在使用hibernate查詢來獲取數據。僅查詢部分需要大約20-30秒。
有沒有一種方法可以優化這個?索引mysql中的表將會有幫助嗎?
我正在使用mysql表並希望在單個查詢中獲取超過10百萬的數據用於報告目的。使用休眠提取數百萬記錄表的最佳方法
我的表也可能包含外鍵。我正在使用hibernate查詢來獲取數據。僅查詢部分需要大約20-30秒。
有沒有一種方法可以優化這個?索引mysql中的表將會有幫助嗎?
您是否嘗試過setFetchSize?休眠並未針對如此大的缺陷進行優化,因此請嘗試使用setFetchSize(http://www.blogbyben.com/2007/07/hibernate-performance-tip-setfetchsize.html)
我沒有得到顯着的性能提升 – Jerry
「有沒有一種方法可以對此進行優化?」是的,不要使用Hibernate進行報告。 – Kayaman
_在mysql中添加表格會有幫助嗎?_當然。沒有索引,這需要搜索沒有引用。但是,你怎麼能有這麼多的數據沒有索引... – AxelH
嗯,我懷疑傳輸數據需要相當一段時間。只需返回一個計數或儘可能少的數據來檢查您的查詢。還請在您的查詢中調用explain以查看它是否可以在某處進行優化。儘管如此,Hibernate會爲創建實體增加開銷。另一方面,如果您只選擇實體屬性/字段而不選擇整個實體,則可以檢查是否繞過Hibernate,即使用普通SQL代替。 – Thomas