3
Hibernate 二級快取 收集、總結整理 (www.itread01.com)
natsu 積分 0

在通常情況下會將具有以下特徵的資料放入到二級快取中:

  • 很少被修改的資料。
  • 不是很重要的資料,允許出現偶爾併發的資料。
  • 不會被併發訪問的資料。
  • 常量資料。
  • 不會被第三方修改的資料

而對於具有以下特徵的資料則不適合放在二級快取中:

  • 經常被修改的資料。
  • 財務資料,絕對不允許出現併發。
  • 與其他應用共享的資料。

在這裡特別要注意的是對放入快取中的資料不能有第三方的應用對資料進行更改(其中也包括在自己程式中使用其他方式進行資料的修改,例如,JDBC),因為那樣Hibernate將不會知道資料已經被修改,也就無法保證快取中的資料與資料庫中資料的一致性。

雖然很早就知道有二級快取這功能,但考慮到以下項目,所以都沒有機會用:

  • 資料一致性的問題
  • 與其下多個 SQL 然後 cache 起來,不如下一個 SQL 就把多筆資料都撈回來應該還比較有效率
IngramChen 積分 1

通常 second level cache 可做的事都會在更前面擋掉 (例如網頁的 cache) 所以 2nd cache 沒事不用去碰,用比較宏觀的角度去最佳化比較好