1. 程式人生 > 實用技巧 >瞭解mybatis快取機制

瞭解mybatis快取機制

作用: 使用快取, 我們可以避免頻繁的與資料庫進行互動, 尤其是在查詢越多、快取命中率越高的情況下, 使用快取對效能的提高更明顯。

快取種類:mybatis快取分為一級快取和二級快取,預設開啟一級快取,而且不能關閉。

一級快取作用域:作用域在sqlSession在建立和關閉之間:

一級快取測試:在一級快取作用域中,根據相同username查詢兩次:

輸出:

不同的username查詢兩次:

輸出:

結論:在一級快取作用域中做查詢操作,若作用域中存在資料,則直接取出,不走資料庫。若沒有則走資料庫。

一級快取失效情況:
1.查詢不同的東西
2.增刪改的操作
3.查詢不同的Mapper.xml
4.手動清理快取

使用二級快取:
1、mybatis-config.xml檔案中開啟全域性快取:
<setting name="cacheEnabled" value="true"/>
2、在對應的Mapper.xml檔案中加入:
<cache/>
3、sql語句標籤中可以使用二級快取或不使用,預設是使用的。
小結:只要開啟二級快取,使用同個mapper有效;所有資料都會放在一級快取中;只有當會話提交或關閉才會放到二級快取中。

自定義快取:(Ehcache)知道存在這個東西就行。
將來用redis做快取。