摘要:問題解析因為熱愛,所以拼搏。如何解決問題本身給出解決方案,就是延遲加載。延遲加載延遲加載會解決上述的問題,也就是在個級聯表的情況下,只加載需求的數據庫表數據。在特定的關聯中,使用屬性覆蓋該內容的功能。
Mybatis N+1問題解析
因為熱愛,所以拼搏。 --RuiDer
前導必備Mybatis
數據庫
級聯
N+1問題??N+1問題來源于數據庫中常見的級聯技術,即N個數據庫表形成關聯關系,當再增加一個關聯表時,也就是N+1個級聯關系,由于某些時候,我們并不需要加載數據庫的所有數據,而是某一個數據庫表中數據,這時Mybatis會自動加載所有表的數據,多執行幾條無關sql語句,會造成數據庫資源的浪費以及系統性能的下降,這就是級聯表的缺點。如何解決N+1問題
Mybatis本身給出解決方案,就是延遲加載。延遲加載
延遲加載會解決上述的N+1問題,也就是在N+1個級聯表的情況下,只加載需求的數據庫表數據。這是互聯網發展的需求,性能提升的途徑。如何配置Mybatis完成延遲加載
全局配置: - lazyLoadingEnabled true/false - aggressiveLazyLoading true/false lazyLoadingEnabled:延遲加載的全局開關,當開啟時,所有關聯都會延遲加載。在特定的關聯中, 使用fetchType屬性覆蓋該內容的功能。fetchType將在后面介紹。 aggressiveLazyLoading:是層級延遲加載開關,什么意思呢?就是處于同一個層級的關聯表會同 時延遲加載,或者同時被加載。 配置: 在Mybatis的全局配置中的setting標簽中加入設置全局配置的缺點
上面的配置屬于全局配置,會出現一個問題,同一個層級的級聯表也存在需求性的差異,同一級的某個數據庫表的數據或許不是我們經常使用的,那么上述的配置也會影響系統的性能。
全局配置的優化 --- fetchType屬性Mybatis使用fetchType屬性解決全局配置的缺點。fetchType出現在級聯元素association,collection中,它存在兩個值
- eager:獲得當前POJO后立即加載對應的數據。 - lazy:獲得當前POJO后延遲加載對應的數據。 配置:
我的github
我的博客
CSDN
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71404.html
摘要:簡介我從七月份開始閱讀源碼,并在隨后的天內陸續更新了篇文章。考慮到超長文章對讀者不太友好,以及拆分文章工作量也不小等問題。經過兩周緊張的排版,一本小小的源碼分析書誕生了。我在寫系列文章中,買了一本書作為參考,這本書是技術內幕。 1.簡介 我從七月份開始閱讀MyBatis源碼,并在隨后的40天內陸續更新了7篇文章。起初,我只是打算通過博客的形式進行分享。但在寫作的過程中,發現要分析的代碼...
摘要:如問到是否使用某框架,實際是是問該框架的使用場景,有什么特點,和同類可框架對比一系列的問題。這兩個方向的區分點在于工作方向的側重點不同。 [TOC] 這是一份來自嗶哩嗶哩的Java面試Java面試 32個核心必考點完全解析(完) 課程預習 1.1 課程內容分為三個模塊 基礎模塊: 技術崗位與面試 計算機基礎 JVM原理 多線程 設計模式 數據結構與算法 應用模塊: 常用工具集 ...
摘要:前言嗨,小伙伴們,這篇博文將帶大家手寫,讓大家對的核心原理以及工作流程有更加深刻的理解。模塊顧名思義,就是框架配置類,用于解析配置文件加載相關環境。配置模塊這里的對框架的配置使用了簡單的,主要原因還是簡單易懂然后節省時間。 前言 (????)??嗨,小伙伴們,這篇博文將帶大家手寫mybatis,讓大家對mybaits的核心原理以及工作流程有更加深刻的理解。在上篇Spring-Mybat...
摘要:我認為學習框架源碼分為兩步抓住主線,掌握框架的原理和流程理解了處理思路之后,再去理解面向對象思想和設計模式的用法目前第一步尚有問題,需要多走幾遍源碼,加深下理解,一起加油 這篇文章我們來深入閱讀下Mybatis的源碼,希望以后可以對底層框架不那么畏懼,學習框架設計中好的思想; 架構原理 架構圖 showImg(https://segmentfault.com/img/remote/...
摘要:的簡稱,運行環境,為的運行提供了所需環境。分割字符串,返回一個分割后的字符串數組。線程安全是線程安全的,而是非線程安全的。迭代器取代了集合框架中的,迭代器允許調用者在迭代過程中移除元素。 本文分為十九個模塊,分別是:?Java 基礎、容器、多線程、反射、對象拷貝、Java Web 、異常、網絡、設計模式、Spring/Spring MVC、Spring Boot/Spring Clou...
閱讀 2130·2021-11-18 10:07
閱讀 3507·2021-09-04 16:48
閱讀 3214·2019-08-30 15:53
閱讀 1235·2019-08-30 12:55
閱讀 2453·2019-08-29 15:08
閱讀 3149·2019-08-29 15:04
閱讀 2879·2019-08-29 14:21
閱讀 2906·2019-08-29 11:21