AMD 5700 XT顯示卡裝ubuntu18.04.* 驅動的問題解決(全)
一:簡介
1.1、概念
資料的臨時存放空間
1.2、主要特點
1.資料會被臨時存在記憶體中
2.可以將查詢結果臨時存放在快取中
3.第二次開始資料獲取,從快取中獲取
4.伺服器內部快取,每次獲取資料不需要通過網路傳輸
1.3、優點
1.提高查詢效率
2.降低資料庫訪問壓力(DB硬體、DB連線數資源)
二、一級快取
2.1、概念
SqlSsession級別的快取
2.2、特點
1.SqlSsession自帶一塊獨立的空間
2.SqlSsession查詢資料,會預設放入快取中
3.第二次查詢,SqlSsession會直接從快取中拿資料,不會發送sql語句
4.生命週期為一個事務過程,如果SqlSsession.commit()被呼叫,一級快取將會被清空
三、二級快取
3.1、概念
1.全域性快取
2.SqlSessionFactory級別快取
3.可以共享多個SqlSession
3.2、特點
1.第一次查詢會從DB中獲得資料,並通過網路傳輸給java
2.將第一次查詢結果,放入全域性快取(二級快取)
3.從第二次查詢開始,每次都是從全域性快取中獲取資料(tomcat的jvm的記憶體中獲取,避免通過網路傳輸)
3.3、使用步驟
1.被快取的的資料物件型別要可序列化
public class xxx implementsSerializable{};
2.需要在使用二級快取的sql的mapper中新增
<cache> </cache> 表示當前mapper檔案中所有select標籤,查詢結果都會放入快取中
3.4、工作機制
1.每次查詢先從快取中獲得資料,如果獲得,直接返回資料,不會發送sql
2.如果快取中沒有獲得,那麼就會發送sql,從資料庫獲得資料
3.5、其他特點
1.開啟二級快取的mapper檔案中的所有select標籤都會預設使用快取。(先從快取中獲取,能獲取就返回,不能獲取就從DB獲取,並存入快取)
2.mapper檔案中的DML標籤insert update delete 會預設清空快取,發生在事務提交之後。(保持快取中資料的一致性)
3.session.commit(); 只有提交了事務才能將查詢結果二級快取中。(清空一級快取)
3.6、二級快取原理:
1.二級快取劃分規則:是以mapper檔案中的namespace進行劃分的,並且一個快取空間對應一個namespace
2.原始碼實現:
本質上是一個HashMap
key:"namespaceid+執行sql語句+實際傳入的引數"
value:查詢結果的返回值
3.7、快取應用原則:
該資料的查詢次數遠遠多於修改次數