MyBatis (五)一級快取和二級快取的區別

2021-08-18 21:19:36 字數 653 閱讀 4035

什麼叫快取

將資料存放在程式記憶體中,用於減輕資料查詢的壓力,提公升讀取資料的速度,提高效能。

一級快取

■ 兩個級別

sqlsession級別的快取,實現在同乙個會話中資料的共享

statement級別的快取,可以理解為快取只對當前執行的這乙個statement有效,執行完後就會清空快取

■ 一級快取的生命週期和sqlsession一致

■ 設定為sqlsession級別的快取,當執行insert/update/delete操作或close之後,快取清空

■ mybatis的一級快取最大範圍是sqlsession內部,有多個sqlsession或者分布式的環境下,資料庫寫操作會引起髒資料,建議設定快取級別為statement

二級快取

■ sqlsessionfactory級別的快取,實現不同會話中資料的共享,是乙個全域性變數

■ 可自定義儲存源,如 ehcache(分布式快取框架)

■ 當開啟快取後,資料的查詢執行的流程就是二級快取-> 一級快取 -> 資料庫

■ 不同於一級快取,二級快取可設定是否允許重新整理和重新整理頻率

推薦乙個「美團技術點評團隊」寫的關於mybatis快取機制的分析

mybatis 快取(一級和二級快取)

1.快取 好處 快取的使用演示 1 sql語句或查詢條件不同 2 分屬不同sqlsession物件 3 查詢前執行clearcache 4 提交事務 2.一級快取 3.二級快取 跟 web應用中 物件作用範圍類似。cacheenabled value true flushinterval 快取重新整...

Mybatis 一級快取和二級快取

一級快取是sqlsession級別的快取 工作機制 乙個sqlsession就代表和資料庫的一次會話,在資料庫中查出的資料放在一級快取中,同乙個物件再次查詢時,會去快取中查詢,避免了再次查詢資料庫。使用 mybatis預設開啟,不需要手動設定 舉例 同乙個物件,查詢兩次,只呼叫一次sql 注 所有測...

mybatis 快取(一級和二級快取)

1.快取 好處 快取的使用演示 1 sql語句或查詢條件不同 2 分屬不同sqlsession物件 3 查詢前執行clearcache 4 提交事務 2.一級快取 3.二級快取 flushinterval 快取重新整理時間間隔,時間是毫秒,檢查是否存在過期物件 size 快取中儲存的物件個數 rea...