我有成千上萬的記錄需要在單個用戶點擊時檢索。目前它給我的結果非常緩慢,我不得不等待很長時間。有沒有辦法提高使用休眠檢索這些結果?如何提高Java中的Hibernate性能?
我有一個情況,其中一個選擇查詢的方法將運行每一分鐘。這是Hibernate給我的慢結果。我在MySQL中使用Hibernate。
我有成千上萬的記錄需要在單個用戶點擊時檢索。目前它給我的結果非常緩慢,我不得不等待很長時間。有沒有辦法提高使用休眠檢索這些結果?如何提高Java中的Hibernate性能?
我有一個情況,其中一個選擇查詢的方法將運行每一分鐘。這是Hibernate給我的慢結果。我在MySQL中使用Hibernate。
通常的做法是讓二級緩存和查詢緩存。比你的數據將從記憶中獲得而不是從數據庫中獲取。
它here
其他的事情好文章可以是有益的:
1索引 - 的情況下,存在這樣的情況和訂購 - 你必須建立你正在尋找/排序字段的索引 - 這樣可以提高搜索速度提高10倍
2反常化 - 如果你有很多連接,一些反常化(把所有的單反表)可以幫助。但是,當一切都失敗時,這應該是最終的解決方案
非常感謝你我會試試這個 –
我有一種情況,其中有選擇查詢的方法會每隔一分鐘運行一次。這是休眠給我速度慢的地方 –
隨着第二級緩存和查詢緩存的啓用,它將在第一次執行查詢後填充實體。所以第一次可以緩慢。但下次它將使用緩存值。從內存中讀取將更快 – alexey28
我建議你去爲Pagination
,如果你要顯示在網頁上的記錄和檢索一次記錄的一部分說100
這有點像說「一根繩子有多長?」。我們需要更多關於你的HQL的細節。只是一個簡單的「where」子句可以大大加快速度。 – david99world
你使用任何緩存? (hibernate.cache.user_query_cache = true) – stzoannos
從數據庫中檢索大量數據只是很慢,不管是否休眠。減少要檢索的行數,例如,一次顯示幾百行。無論如何,您的用戶無法同時查看所有10000行,因此沒有必要向他們提供那麼多信息。 – dasblinkenlight