【java】itoo項目實戰之大資料查詢之使用 new map 最佳化hibernate之級聯查詢

來源:互聯網
上載者:User

標籤:

     在我的上一篇部落格《【java】itoo項目實戰之hibernate懶載入最佳化效能》中,我曾提到過學生資料有2萬條,查詢資料十分的慢,這是讓人很受不了的事情,看著頁面進度條一直轉著圈圈,那種著急的感覺真的沒法形容。最開始考慮著使用lazy來最佳化,因為前台架構的原因,lazy 最佳化並沒有起到什麼左右,後來就想著有select new map最佳化。我先來畫畫關於查詢學生的級聯樹


這個樹的意思就是查詢學生的時候它的深度是4級。

     在沒有最佳化之前,使用的是hibernate的hql語句:From Student where isDelete =?執行語句的時候,會發出467條語句列印到控制台上,打的滿屏都是,看控制台的時候,看著就感覺頭暈。

最佳化的時候,選擇用selectnew map進行最佳化,語句如下:

select newmap(S.id as id, S.name as name,S.comment as comment,S.remark asremark,S.accountAddress as accountAddress,S.code as code,S.email asemail,S.entranceDate as entranceDate,S.graduateSchool asgraduateSchool,S.identityCardID as identityCardID,S.classes.className asclassName,S.classes.institution.institutionName asinstitutionName,S.classes.institution.parentInstitution.institutionName asparentInstitution,S.classes.institution.schoolLevel.levelName aslevelName,S.classes.institution.id as institutionId,S.professional.professionalCodeas professionalCode) from  Student  S where S.isDelete =:isDelete


在列印語句的時候是1條。看控制台列印出來的結果還是挺舒服的。

但是他們的時間差如下:


從上表中可以看出,時間差得還是挺多的。在這裡我有些事想不明白:


1.使用new map查詢的時候,雖然只列印一條語句,它需要進行全表掃描,查詢的次數並不少,而hibernate的hql語句把每次查詢的語句都列印出來了。但是它的查詢時間相對new map來說,為什麼會變長呢?

 

2.hibernate的hql語句級聯查詢時間過長的原因會不會跟hibernate的緩衝有關係?每次查詢結果都需要放到1,2級緩衝中。

 

3.關於hibernate的查詢語句這樣設計的原因是什麼,當初hibernate的大牛們設計的時候,是處於什麼考慮的?

 

以上的三個問題我目前沒有找到相關的資料來解答,如果哪位看到了,可以相互討論一下.



著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

【java】itoo項目實戰之大資料查詢之使用 new map 最佳化hibernate之級聯查詢

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.