mybatis框架 效能優化

2021-08-22 12:01:43 字數 1986 閱讀 5427

延遲載入又叫懶載入,也叫按需載入。也就是說先載入主資訊,在需要的時候,再去載入從資訊。在mybatis中,resultmap標籤 的association標籤和collection標籤具有延遲載入的功能。

查詢訂單資訊,關聯查詢使用者資訊。除了像之前的通過乙個sql語句來完成查詢,還可以

但是當暫時不需要用資訊時可以先不執行後一句,這就是懶載入。

首先建立查詢訂單資訊的對映檔案:

select * from

orders

而它返回的結果集為:

說明:

select

* from user where id =#

//延遲載入

public listfindorderanduserlazyloading();

然後需要在主配置檔案中開啟延遲載入:

注意:一級快取是預設使用的;二級快取需要手動開啟。

其原理如下:

其原理如下:

如果想要開啟二級快取,首先在全域性配置檔案中:

然後在想開啟二級快取的對應的對映檔案中配置如下即可:

但是如果只是設定成如上那樣,如果快取溢位將會報錯,解決辦法就是將對應的實體序列化(假如對應的實體為user):

public class user implements serializable
即可。

如果某個查詢語句不想使用快取只要:

select

* from user where id =#

如果執行某個查詢語句重新整理快取只要:

select

* from user where id =#

說明:flushcache的預設值在查詢語句時是false,在增刪改為true.

mybatis本身是乙個持久層框架,它不是專門的快取框架,所以它對快取的實現不夠好,不能支援分布式。ehcache是乙個分布式的快取框架。

附加:分布式,系統為了提高效能,通常會對系統採用分布式部署(集群部署方式),結構如下:

cache是乙個介面,它的預設實現是mybatis的perpetualcache。如果想整合mybatis的二級快取,那麼實現cache介面即可。然後設定對映檔案中cache標籤的type值為ehcache的實現類:

之後新增ehcache的配置檔案(在config下,建立ehcache.xml),內容如下:

使用場景:對於訪問響應速度要求高,但是實時性不高的查詢,可以採用二級快取技術。

注意:在使用二級快取的時候,要設定一下重新整理間隔(cache標籤中有乙個flashinterval屬性)來定時重新整理二級快取,這個重新整理間隔根據具體需求來設定,比如設定30分鐘、60分鐘等,單位為毫秒。

mybatis二級快取對細粒度的資料,快取實現不好。

解決此類問題,需要在業務層根據需要對資料有針對性的快取。

MyBatis效能優化

mybatis快取機制原理是將第一次從資料庫sql查詢的結果資料儲存到快取 記憶體中 當下一次sql查詢和第一次相同,如果快取中有資料則直接獲取,而不再從資料庫獲取,從而減少資料庫訪問頻率,大大提公升資料庫效能。延時載入又叫懶載入 也叫按需載入 也就是說先載入主表資訊,需要的時候,再去載入從表資訊。...

MyBatis框架使用優化

在mybatis.xml配置檔案中配置如下內容,可以優化框架的使用。1 配置別名 3 屬性的名稱配置 屬性檔案的作用 a mybatis也是支援屬性檔案的讀取 b 使 結構變得更加的清晰 4 配置settings開啟log4j支援 日誌的作用 最大的作用 可以使用日誌的級別記錄不同的資訊 log4j...

10 10 MyBatis 效能優化

一 資料來源 資料來源是一種提高資料連線效能的常規手段,資料來源會負責維持乙個資料庫連線池,當程式建立資料例項時,系統會一次性的建立多個資料庫連線,並把這些資料庫連線放在連線池中。當程式需要連線資料庫訪問時,無需進行重新獲取資料庫連線,而是從連線池中取出乙個空閒的資料庫連線。當程式使用資料庫連線訪問...