您好,登錄后才能下訂單哦!
這篇文章主要講解了“Hibernate HQL優(yōu)化的方法有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Hibernate HQL優(yōu)化的方法有哪些”吧!
初用Hibernate的人也許都遇到過(guò)性能問(wèn)題,實(shí)現(xiàn)同一功能,用Hibernate與用JDBC性能相差十幾倍很正常,如果不及早調(diào)整,很可能影響整個(gè)項(xiàng)目的進(jìn)度。
大體上,對(duì)于Hibernate性能調(diào)優(yōu)的主要考慮點(diǎn)如下:
◆數(shù)據(jù)庫(kù)設(shè)計(jì)調(diào)整
◆HQL優(yōu)化
◆API的正確使用(如根據(jù)不同的業(yè)務(wù)類(lèi)型選用不同的集合及查詢API)
◆主配置參數(shù)(日志,查詢緩存,fetch_size, batch_size等)
◆映射文件優(yōu)化(ID生成策略,二級(jí)緩存,延遲加載,關(guān)聯(lián)優(yōu)化)
◆一級(jí)緩存的管理
◆針對(duì)二級(jí)緩存,還有許多特有的策略
◆事務(wù)控制策略。
1.數(shù)據(jù)庫(kù)設(shè)計(jì)
◆降低關(guān)聯(lián)的復(fù)雜性
◆盡量不使用聯(lián)合主鍵
◆ID的生成機(jī)制,不同的數(shù)據(jù)庫(kù)所提供的機(jī)制并不完全一樣
◆適當(dāng)?shù)娜哂鄶?shù)據(jù),不過(guò)分追求高范式
2.Hibernate HQL優(yōu)化
HQL如果拋開(kāi)它同Hibernate本身一些緩存機(jī)制的關(guān)聯(lián),Hibernate HQL優(yōu)化技巧同普通的SQL優(yōu)化技巧一樣,可以很容易在網(wǎng)上找到一些經(jīng)驗(yàn)之談。
3.主配置
◆查詢緩存,同下面講的緩存不太一樣,它是針對(duì)HQL語(yǔ)句的緩存,即完全一樣的語(yǔ)句再次執(zhí)行時(shí)可以利用緩存數(shù)據(jù)。但是,查詢緩存在一個(gè)交易系統(tǒng)(數(shù)據(jù)變更頻繁,查詢條件相同的機(jī)率并不大)中可能會(huì)起反作用:它會(huì)白白耗費(fèi)大量的系統(tǒng)資源但卻難以派上用場(chǎng)。
◆fetch_size,同JDBC的相關(guān)參數(shù)作用類(lèi)似,參數(shù)并不是越大越好,而應(yīng)根據(jù)業(yè)務(wù)特征去設(shè)置
◆batch_size同上。
◆生產(chǎn)系統(tǒng)中,切記要關(guān)掉SQL語(yǔ)句打印。
感謝各位的閱讀,以上就是“Hibernate HQL優(yōu)化的方法有哪些”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Hibernate HQL優(yōu)化的方法有哪些這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。