Mysql中一級緩存二級緩存區別
阿新 • • 發佈:2018-02-25
情況 如果 mys 提交 四種 ssi 修改 進行 失效
一級緩存:
也稱本地緩存,sqlSession級別的緩存。一級緩存是一直開啟的;與數據庫同一次會話期間查詢到的數據會放在本地緩存中。
如果需要獲取相同的數據,直接從緩存中拿,不會再查數據庫。
一級緩存失效的四種情況:
1.sqlSession不同。
2.sqlSession相同,查詢條件不同。因為緩存條件不同,緩存中還沒有數據。
3.sqlSession相同,在兩次相同查詢條件中間執行過增刪改操作。(因為中間的增刪改可能對緩存中數據進行修改,所以不能用)
4.sqlSession相同,手動清空了一級緩存。
二級緩存:全局緩存;基於namespace級別的緩存。一個namespace對應一個二級緩存。
工作機制:1.一個會話,查詢一條數據,這個數據會被放在當前會話的一級緩存中。
2,如果會話被關閉了,一級緩存中的數據會被保存帶二級緩存。新的會話查詢信息就會參照二級緩存。
3.sqlSession ====> Employee====>employee
sqlSession ====>DepartmentMapper=====>Department
不同的namespace查出的數據會放在自己對應的緩存中。
效果:查出的數據首先放在一級緩存中,只有一級緩存被關閉或者提交以後,一級緩存數據才會轉移到二級緩存
Mysql中一級緩存二級緩存區別