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