1. 程式人生 > 其它 >Mysql-增刪改查

Mysql-增刪改查

快取 更多的瞭解 因為我們有更好的快取 我們都知道,進行資料庫的快取一次操作,時間相對比較長   怎麼提高查詢效率 MyBatis提供了快取,執行完sql查詢後,把結果暫存到,一個物件 當我們再次執行同樣的查詢的時候,先從快取中查詢,,如果查詢到了,則返回結果 如果沒有查詢到了,則在進行資料庫的查詢   MyBatis一共提供了兩種快取,分別是一級快取和二級快取       一:一級快取SQLSession     第一次查詢的時候,進行了sql的預編譯,很明顯進行了資料庫的操作 第二次查詢的時候,沒有編譯sql,直接輸出結果 證明第二次查詢的時候,沒有查資料庫,而是直接從一級快取sqlSession中拿到結果   二級快取SqlSessionFactor       二級快取何時存入? 在關閉sqlSession·後,才會把sqlSession中快取的資料新增到namespace的二級快取中 開啟了二級快取後,還需要將pojo類實現Serializable介面,因為二級快取可能用到記憶體 以及磁碟的空間,如果用到磁碟的空間,肯定要序列化,想要序列化,不必須實現呢Serializabke 介面   怎麼用? 一級快取預設存在,二級快取需要手動開啟     測試 一定注意,一定是同一個SQLSessionFactory 建立不同的sqlSession例項
    上面的程式碼,理論上講,第一次查詢的時候,肯定要查資料庫的,sqlSession關閉的時候,快取放在sqlSession例項中 第二次查詢的時候,理論上講從sqlSessionFactory中查詢 但是我們發現任然發現從資料庫中查詢               第二次查詢的時候不再有預編譯了 而且出現了命中率 兩次命中一次 足以證明,第二次查詢資料來自二級快取sqlSessionFactory