mysql 几级缓存_Mysql中一级缓存二级缓存区别
一級緩存:
也稱本地緩存,sqlSession級別的緩存。一級緩存是一直開啟的;與數(shù)據(jù)庫同一次會話期間查詢到的數(shù)據(jù)會放在本地緩存中。
如果需要獲取相同的數(shù)據(jù),直接從緩存中拿,不會再查數(shù)據(jù)庫。
一級緩存失效的四種情況:
1.sqlSession不同。
2.sqlSession相同,查詢條件不同。因為緩存條件不同,緩存中還沒有數(shù)據(jù)。
3.sqlSession相同,在兩次相同查詢條件中間執(zhí)行過增刪改操作。(因為中間的增刪改可能對緩存中數(shù)據(jù)進(jìn)行修改,所以不能用)
4.sqlSession相同,手動清空了一級緩存。
二級緩存:全局緩存;基于namespace級別的緩存。一個namespace對應(yīng)一個二級緩存。
工作機(jī)制:1.一個會話,查詢一條數(shù)據(jù),這個數(shù)據(jù)會被放在當(dāng)前會話的一級緩存中。
2,如果會話被關(guān)閉了,一級緩存中的數(shù)據(jù)會被保存帶二級緩存。新的會話查詢信息就會參照二級緩存。
3.sqlSession ====> Employee====>employee
sqlSession ====>DepartmentMapper=====>Department
不同的namespace查出的數(shù)據(jù)會放在自己對應(yīng)的緩存中。
效果:查出的數(shù)據(jù)首先放在一級緩存中,只有一級緩存被關(guān)閉或者提交以后,一級緩存數(shù)據(jù)才會轉(zhuǎn)移到二級緩存
總結(jié)
以上是生活随笔為你收集整理的mysql 几级缓存_Mysql中一级缓存二级缓存区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 不支持fork,grails不
- 下一篇: mysql数据应用从入门_MYSQL数据