91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

mybatis一級緩存和二級緩存的原理

科技綠洲 ? 來源:網(wǎng)絡整理 ? 作者:網(wǎng)絡整理 ? 2023-12-03 11:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

MyBatis是一種輕量級的持久化框架,它提供了一級緩存和二級緩存的機制來優(yōu)化數(shù)據(jù)庫操作性能。一級緩存是默認開啟的,而二級緩存需要手動配置啟用。

一、一級緩存
1.1 緩存生命周期

一級緩存存在于SqlSession的生命周期中,當SqlSession關(guān)閉時,一級緩存也會被清空。

1.2 緩存實現(xiàn)機制

一級緩存采用了基于PerpetualCache的HashMap來實現(xiàn),使用一個Map對象來保存緩存的數(shù)據(jù)。當執(zhí)行相同的查詢時,MyBatis會首先尋找一級緩存中是否存在對應的緩存數(shù)據(jù),如果存在則直接返回,否則通過數(shù)據(jù)庫查詢獲取數(shù)據(jù)并放入緩存中。

1.3 緩存命中條件

緩存的命中條件比較嚴格,需要滿足以下條件:

同一個SqlSession。
相同的查詢語句。
參數(shù)也要相同。

如果其中有一個條件不滿足,將會導致緩存失效。

1.4 緩存清空

一級緩存有以下幾種清空方式:

通過調(diào)用SqlSession的clearCache()方法手動清空緩存。
執(zhí)行任何的數(shù)據(jù)更新操作(insert、update、delete),會自動清空緩存。

二、二級緩存
2.1 緩存生命周期

二級緩存的生命周期和SqlSessionFactory相同,當應用程序關(guān)閉時,二級緩存也會被銷毀。

2.2 緩存實現(xiàn)機制

二級緩存也采用了基于PerpetualCache的HashMap來實現(xiàn),但是它是一個全局的緩存,多個SqlSession之間可以共享這個緩存。

2.3 緩存命中條件

二級緩存的命中條件與一級緩存相同。

2.4 緩存清空

二級緩存的清空需要手動配置。在映射文件(Mapper)中的標簽內(nèi)設置flushCache="true",可以在執(zhí)行任何的數(shù)據(jù)更新操作后自動清空二級緩存。

2.5 配置二級緩存

在MyBatis的配置文件中配置二級緩存,需要在標簽內(nèi)添加以下配置:


并在映射文件(Mapper)中的標簽內(nèi)進行更多的配置。

三、一級緩存和二級緩存的比較和使用場景

3.1 一級緩存的優(yōu)勢和劣勢

優(yōu)勢:

一級緩存是默認啟用的,使用起來非常方便。
一級緩存存儲在SqlSession內(nèi)部,讀寫速度非常快。

劣勢:

一級緩存只能在同一個SqlSession中共享,無法在多個SqlSession之間共享。
一級緩存的生命周期比較短,當SqlSession關(guān)閉時緩存也會被清空。

3.2 二級緩存的優(yōu)勢和劣勢

優(yōu)勢:

二級緩存是全局的,多個SqlSession之間可以共享。
二級緩存的生命周期和應用程序相同。

劣勢:

需要手動配置和啟用二級緩存。
二級緩存的讀寫速度相對于一級緩存要慢一些。

3.3 使用場景

一級緩存適用于以下情況:

數(shù)據(jù)庫查詢操作多且頻繁。
數(shù)據(jù)更新操作少且不頻繁。
數(shù)據(jù)庫查詢結(jié)果經(jīng)常被重復使用。

二級緩存適用于以下情況:

多個SqlSession之間需要共享緩存數(shù)據(jù)。
數(shù)據(jù)更新操作較少。

總結(jié):
MyBatis的一級緩存和二級緩存主要是為了提高數(shù)據(jù)庫操作性能而設計的兩個機制。一級緩存是默認開啟的,在SqlSession的生命周期內(nèi)有效,使用方便但局限性較大。二級緩存需要手動配置啟用,為全局緩存,多個SqlSession之間可以共享數(shù)據(jù),使用較為靈活。根據(jù)具體的應用場景和需求,可以靈活選擇合適的緩存策略來提高應用的性能。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 緩存
    +關(guān)注

    關(guān)注

    1

    文章

    246

    瀏覽量

    27195
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3927

    瀏覽量

    66279
  • MAP
    MAP
    +關(guān)注

    關(guān)注

    0

    文章

    49

    瀏覽量

    15522
  • mybatis
    +關(guān)注

    關(guān)注

    0

    文章

    64

    瀏覽量

    6936
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    CPU二級緩存打開器-加速

    CPU二級緩存打開器-加速軟件簡介:般的CPU在出廠時都是沒有真正打開二級緩存的!就像你吃饅頭,你可以吃4個,但吃了會覺得太飽,但也不會有什么大的傷 害!^_^而CPU也是,為了降低損壞率,
    發(fā)表于 03-02 17:04

    求大神指點 關(guān)于fpga實現(xiàn)數(shù)據(jù)的二級緩存

    如論文所示,應該如何實現(xiàn)二級緩存處理呢?四路信號是有pi/4相位差的方波信號
    發(fā)表于 06-21 18:29

    Java程序員筆記之mybatis結(jié)合redis實戰(zhàn)二級緩存

    Java程序員筆記——mybatis結(jié)合redis實戰(zhàn)二級緩存
    發(fā)表于 06-10 09:15

    二級緩存致性

    裸機下運行多核程序,開128KB的二級緩存時,結(jié)果沒問題,但是開了256KB的二級緩存時,結(jié)果出現(xiàn)偏差,請問這種問題該怎么排查解決
    發(fā)表于 08-24 21:40

    CPU一級緩存

    CPU一級緩存              CPU緩存(Cache Memo
    發(fā)表于 12-24 10:21 ?507次閱讀

    CPU二級緩存容量

    CPU二級緩存容量            CPU緩存(Cache Memory)是位
    發(fā)表于 12-24 10:22 ?603次閱讀

    什么是聯(lián)合并行處理二級緩存?

    什么是聯(lián)合并行處理二級緩存? 聯(lián)合并行處理二級緩存是(set-associative)將二級緩存劃分不同的片段,在每片段中包含許多緩存
    發(fā)表于 02-04 10:34 ?331次閱讀

    什么是CPU一級緩存/二級緩存?

    什么是CPU一級緩存/二級緩存?  即L1 Cache。集成在CPU內(nèi)部中,用于CPU在處理數(shù)據(jù)過程中數(shù)據(jù)的暫時保存。由于緩存指令和數(shù)據(jù)與CPU
    發(fā)表于 02-04 10:43 ?1264次閱讀

    Mybatis緩存一級緩存

    本文主要講mybatis一級緩存,一級緩存是SqlSession級別的緩存
    發(fā)表于 11-27 20:44 ?1314次閱讀
    <b class='flag-5'>Mybatis</b><b class='flag-5'>緩存</b>之<b class='flag-5'>一級</b><b class='flag-5'>緩存</b>

    一級緩存、二級緩存、三緩存區(qū)別是什么 詳解它們的區(qū)分方法

    一級緩存(Level?1?Cache)簡稱L1?Cache,位于CPU內(nèi)核的旁邊,是與CPU結(jié)合最為緊密的CPU緩存,也是歷史上最早出現(xiàn)的CPU緩存。
    發(fā)表于 08-14 09:27 ?8.2w次閱讀

    怎樣啟用CPU的二級緩存 如何查看二級緩存的參數(shù)

    提到二級緩存容量的差距,還得從兩大CPU巨頭對一級緩存的理解說起。對,沒看錯,就是平常曝光率遠遜于二級緩存的“一級
    的頭像 發(fā)表于 08-14 10:20 ?1.3w次閱讀

    如何檢測cpu二級緩存是否損壞 詳解二級緩存對CPU性能影響

    綜上所述,在CPU性能方面,并非只從二級緩存容量上作對比就可以得到準確的答案,實際上還要考慮到緩存的總體設計結(jié)構(gòu)、一級數(shù) 據(jù)緩存容量等因素。
    發(fā)表于 08-14 10:39 ?1.1w次閱讀
    如何檢測cpu<b class='flag-5'>二級緩存</b>是否損壞 詳解<b class='flag-5'>二級緩存</b>對CPU性能影響

    二級緩存的簡單配置教程詳解 淺談二級緩存之功效

    緩存是指可以進行高速數(shù)據(jù)交換的存儲器,它先于內(nèi)存與CPU交換數(shù)據(jù),因此速度很快。L1Cache(一級緩存)是CPU第一層高速緩存。
    發(fā)表于 08-14 15:28 ?4640次閱讀
    <b class='flag-5'>二級緩存</b>的簡單配置教程詳解 淺談<b class='flag-5'>二級緩存</b>之功效

    CPU緩存的作用及原理有哪些

    CPU緩存是位于CPU與內(nèi)存之間的臨時存儲器,它的容量比內(nèi)存小很多,但交換速度比內(nèi)存要快很多。 CPU緩存分為三類:一級緩存—L1、二級緩存
    的頭像 發(fā)表于 08-27 15:58 ?1.2w次閱讀

    Mybatis 源碼暢談軟件設計(八):從根上理解 Mybatis 二級緩存

    的 cache 標簽指定了 readOnly 屬性,因為該配置相對比較重要,所以我們在這里把它講解下: readOnly 默認為 false ,這種情況下通過二級緩存查詢出來的數(shù)據(jù)會進行次 序列化深拷貝 。在這里大家需要回想
    的頭像 發(fā)表于 06-23 11:35 ?116次閱讀
    由 <b class='flag-5'>Mybatis</b> 源碼暢談軟件設計(八):從根上理解 <b class='flag-5'>Mybatis</b> <b class='flag-5'>二級緩存</b>
    主站蜘蛛池模板: 久久草在线精品 | 五月天丁香婷婷网 | 最新看片网址 | 国产成人高清一区二区私人 | 四虎国产精品永久在线网址 | 激情综合婷婷丁香六月花 | 色第一页| 天天色天天干天天 | 高清国产在线观看 | 4455ee日本高清免费观看 | 男人操女人免费网站 | 欧美最猛黑人xxxx黑人猛交69 | 午夜亚洲精品 | 免费看h的网站 | 免费人成a大片在线观看动漫 | 四虎新地址4hu 你懂的 | 久久久免费精品视频 | bt天堂在线最新版在线 | 最近2018中文字幕免费看在线 | 五月综合激情久久婷婷 | 插插插操操操 | 美女扒开下面让男人捅 | 国模张文静啪啪私拍337p | 免费公开在线视频 | 韩国三级久久精品 | 天天射天天干天天操 | h在线观看视频 | 亚洲成色在线综合网站 | 欧美日韩国产一区二区 | 扒开末成年粉嫩的流白浆视频 | 77788色淫视频免费观看 | 成人亚洲电影 | 国产va在线观看 | xyx性爽欧美视频 | 一级片在线免费播放 | 色综合天天色综合 | 日日爱视频 | 欧美黄色成人 | 1024手机看片国产 | 波多野结衣三个女人蕾丝边 | a级毛片网 |