1. 程式人生 > >mybatis二級快取的應用場景和侷限性

mybatis二級快取的應用場景和侷限性

mybatis二級快取的應用場景

  1. 對於訪問多的,實時性要求不高的查詢請求,可以採用mybatis二級快取技術。
  2. 對於查詢特別耗時的sql請求,且實時性要求不高(如查詢前24小時或前一個月的消費統計)
    二級快取如何應用:
    通過設定快取重新整理間隔時間flushInterval,由mybatis每隔一段時間自動清空快取,可以根據資料變化頻率設定重新整理間隔,比如設定為30分鐘、60分鐘、24小時等,根據需求而定。

mybatis二級快取的侷限性

細粒度快取就是,針對某個商品,如果要修改其資訊,只修改該商品的快取資料,快取區的其他資料不動(不會因為某個商品資訊的修改就直接清空整個快取區)

mybatis二級快取對細粒度級別的快取實現不好,比如如下需求:
對商品資訊進行快取, 由於商品資訊查詢訪問量大,但是要求使用者每次都能查詢到最新的商品資訊,此時如果使用mybatis的二級快取,就無法實現當一個商品資訊變化時,只重新整理該商品的快取資訊,而不重新整理其它商品的資訊。這是因為mybatis的二級快取區域以mapper為單位進行劃分,當一個商品資訊變化時(使用這個mapper的任意一個sqlSession執行commt操作),會將所有商品資訊的快取資料全部清空。解決此問題,需要在業務層根據需求對資料進行鍼對性的快取(三級快取)。