2013-05-04 49 views
0

我想測試如何使用hibernatemysql來優化Java應用程序中的數據選擇和加載。Hibernate + MySQL。優化選擇和加載數據的方法

我相除的結果,我發現2組

MySQL的

  • 指標 - 肯定
  • 存儲過程 - 是有區別,如果選擇在存儲過程中做了什麼?
  • views - 如果選擇定義保持在視圖中,是否有區別?
  • 查詢緩存 - 僅當我們第二次執行相同的選擇時才起作用嗎?

休眠

  • Hibernate的緩存 - 這是類似的查詢緩存?如何配置?
  • 延遲加載 - 它可以幫助嗎?

還有其他方法嗎?我使用了幾個連接和聚合函數的簡單查詢。 我需要演示優化之前和之後的時間變化。

欲瞭解更多信息,我試圖閱讀this,但語言對我來說很複雜。

回答

0
  1. 當你閱讀例如文件時,批量讀取很重要。一個集合。在這種情況下,Hibernate可以在一個SQL請求中獲得許多行集合,這樣會更快。
  2. Hibernate緩存是非常好的解決方案(例如閱讀EHCache),它可以將檢索到的數據存儲在內存中,如果沒有任何變化,它甚至可以在不詢問SQL引擎的情況下檢索它。
  3. 延遲加載是一對多關聯必須的(你可以在沒有這個的情況下殺死你的解決方案)。但幸運的是,它在Hibernate中被默認設置爲這樣的關聯。

您還可以閱讀樂觀鎖,這在許多情況下比悲觀鎖快。

最後但並非最不重要的是,您應該使用正確的交易策略,以便在不需要時不應創建新交易。