什麼叫快取
將資料存放在程式記憶體中,用於減輕資料查詢的壓力,提公升讀取資料的速度,提高效能。
一級快取
■ 兩個級別
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...