mybatis 3 x 快取介紹

2021-07-14 22:19:06 字數 1047 閱讀 1631

mybatis快取分為一級快取和二級快取:

一級快取是基於 perpetualcache(mybatis自帶)的 hashmap 本地快取,作用範圍為session,

所以當session commit或close後,快取就會被清空.

1)單獨使用mybatis而不繼承spring,使用原生的mybatis的sqlsessionfactory來構造sqlsession查詢,

是可以使用以及快取的,mybatis的一級快取在spring中是沒有作用的.

二級快取

級快取預設也是基於 perpetualcache,但是可以為其制定儲存源,比如ehcache.

二級快取就是global caching,它超出session範圍之外,可以被所有sqlsession共享,

它的實現機制和mysql的快取一樣,開啟它只需要在mybatis的配置檔案開啟settings裡的

二級快取補充說明

1. 對映語句檔案中的所有select語句將會被快取。

2. 對映語句檔案中的所有insert,update和delete語句會重新整理快取。

3. 快取會使用least recently used(lru,最近最少使用的)演算法來收回。

4. 快取會根據指定的時間間隔來重新整理。

5. 快取會儲存1024個物件

cache標籤常用屬性:

eviction是快取的淘汰演算法,可選值有"lru"、"fifo"、"soft"、"weak",預設值是lru

flashinterval指快取過期時間,單位為毫秒,60000即為60秒,預設值為空,即只要容量足夠,永不過期

size指快取多少個物件,預設值為1024

readonly是否唯讀,如果為true,則所有相同的sql語句返回的是同乙個物件

(有助於提高效能,但併發操作同一條資料時,可能不安全),如果設定為false,則相同的sql,

後面訪問的是cache的clone副本。

上面這個是全域性設定,在每條單獨的sql語句上,還可以有區域性設定,比如:

...usecache="false"表示該select語句不使用快取.

mybatis 3 x 快取Cache的使用

1 namespace 23 cache 4eviction lru 5flushinterval 60000 6size 1024 7readonly true 8 9.10 這裡有幾個要注意的地方 eviction是快取的淘汰演算法,可選值有 lru fifo soft weak 預設值是lru...

mybatis 3 x 快取Cache的使用

1 namespace 23 cache 4eviction lru 5flushinterval 60000 6size 1024 7readonly true 8 9.10 這裡有幾個要注意的地方 eviction是快取的淘汰演算法,可選值有 lru fifo soft weak 預設值是lru...

MyBatis3 X 系列 玩轉多級快取和懶載入

簡介 講解mybatis 級快取介紹和驗證 什麼是快取 程式經常要調 的物件存在記憶體中,便其使 時可以快速調 不必去資料庫或者其他持久化 裝置中查詢,主要就是提 效能 mybatis 級快取 簡介 級快取的作 域是sqlsession,同 個sqlsession中執 相同的sql查詢 相同的 sq...