溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行Mybaitis的緩存優(yōu)化

發(fā)布時(shí)間:2021-12-09 18:10:43 來源:億速云 閱讀:110 作者:柒染 欄目:大數(shù)據(jù)

這篇文章將為大家詳細(xì)講解有關(guān)如何進(jìn)行Mybaitis的緩存優(yōu)化,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

我們先來看代碼

如何進(jìn)行Mybaitis的緩存優(yōu)化


 

這段代碼中, Mybatis一共發(fā)了兩條SQL,這就好像說, Mybatis中沒有緩存,然后我們打開Mybatis的文檔一看,頓時(shí)震驚

如何進(jìn)行Mybaitis的緩存優(yōu)化


 

這難道是騙人的,說好的默認(rèn)開啟緩存呢…..

其實(shí)不是的,默認(rèn)確實(shí)是開啟緩存的,但是我們還需要配置一點(diǎn)東西

UserMapper.xml

如何進(jìn)行Mybaitis的緩存優(yōu)化


 

另外,對(duì)象還要實(shí)現(xiàn)序列化接口,否則報(bào)NotSerializableException的異常

如何進(jìn)行Mybaitis的緩存優(yōu)化


 

設(shè)置完畢之后,我們?cè)賮韲L試insert的問題

如何進(jìn)行Mybaitis的緩存優(yōu)化


 

此時(shí)發(fā)現(xiàn),發(fā)了3條SQL,那么究竟是什么原因呢?如下圖

如何進(jìn)行Mybaitis的緩存優(yōu)化


 

看完這個(gè)圖,就明白為什么get(1L)->add()->get(1L)這個(gè)過程會(huì)發(fā)3條SQL了,因?yàn)?code>insert的時(shí)候,清空了緩存

但是就算insert,并沒有影響到get(1L)的結(jié)果,但是你卻把他的緩存也清空了,這明顯不合理,那么我們?cè)趺磧?yōu)化呢?

那么我們可不可以這樣做呢?如圖:

如何進(jìn)行Mybaitis的緩存優(yōu)化


 

也就是我們做了兩件事

  • list由于緩存命中率低,那么我們就不加入到緩存中

  • insert我們不清空緩存

那么在代碼中,我們具體是怎么實(shí)現(xiàn)的呢?

UserMapper.xml

如何進(jìn)行Mybaitis的緩存優(yōu)化 這樣之后,我們Mybatis中的緩存就更高效了

關(guān)于如何進(jìn)行Mybaitis的緩存優(yōu)化就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI