Hibernate HQL優化學習筆記
本文向大家介紹Hibernate HQL優化,可能好多人還不了解Hibernate HQL優化,沒有關系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。依照Hibernate幫助文檔,一些網絡書籍及項目經驗整理而成,只提供要點和思路,具體做法可以留言探討,或是找一些更詳細更有針對性的資料。
初用Hibernate的人也許都遇到過性能問題,實現同一功能,用Hibernate與用JDBC性能相差十幾倍很正常,如果不及早調整,很可能影響整個項目的進度。
大體上,對于Hibernate性能調優的主要考慮點如下:
◆數據庫設計調整
◆HQL優化
◆API的正確使用(如根據不同的業務類型選用不同的集合及查詢API)
◆主配置參數(日志,查詢緩存,fetch_size, batch_size等)
◆映射文件優化(ID生成策略,二級緩存,延遲加載,關聯優化)
◆一級緩存的管理
◆針對二級緩存,還有許多特有的策略
◆事務控制策略。
1.數據庫設計
◆降低關聯的復雜性
◆盡量不使用聯合主鍵
◆ID的生成機制,不同的數據庫所提供的機制并不完全一樣
◆適當的冗余數據,不過分追求高范式
2.Hibernate HQL優化
HQL如果拋開它同Hibernate本身一些緩存機制的關聯,Hibernate HQL優化技巧同普通的SQL優化技巧一樣,可以很容易在網上找到一些經驗之談。
3.主配置
◆查詢緩存,同下面講的緩存不太一樣,它是針對HQL語句的緩存,即完全一樣的語句再次執行時可以利用緩存數據。但是,查詢緩存在一個交易系統(數據變更頻繁,查詢條件相同的機率并不大)中可能會起反作用:它會白白耗費大量的系統資源但卻難以派上用場。
◆fetch_size,同JDBC的相關參數作用類似,參數并不是越大越好,而應根據業務特征去設置
◆batch_size同上。
◆生產系統中,切記要關掉SQL語句打印。
【編輯推薦】