MyBatisのファーストキャッシュとセカンドキャッシュは何をするのか。

MyBatisの一次キャッシュと二次キャッシュの役割は次の通りです:

  1. 一次キャッシュ:一次キャッシュはMyBatisでデフォルトで有効になっており、SqlSessionレベルのキャッシュで、ローカルキャッシュとも呼ばれます。同じSqlSessionで同じクエリ文を実行する場合、データベースへの再リクエストを送信せずにキャッシュから結果を直接取得することでパフォーマンスを向上させることができます。一次キャッシュの効果範囲は非常に限られており、同じSqlSession内でのみ有効です。
  2. 二次キャッシュ:二次キャッシュはSqlSessionFactoryレベルのキャッシュであり、グローバルキャッシュとも呼ばれます。複数のSqlSessionが同じSqlSessionFactoryを共有している場合、彼らは同じ二次キャッシュを共有することができます。二次キャッシュはSqlSessionを越えることができ、より高いキャッシュ効果を提供します。クエリを実行する際、MyBatisはまず二次キャッシュからデータを検索し、見つかった場合は直接返し、見つからない場合はデータベースをクエリし、クエリ結果を二次キャッシュに保存します。二次キャッシュの範囲はより広く、複数のSqlSessionを越えることができます。

要約すると、一次キャッシュと二次キャッシュは、クエリの性能を向上させ、データベースのアクセス回数を減らすことができますが、一次キャッシュは同じSqlSession内に限定される一方、二次キャッシュの範囲はより広く、複数のSqlSessionをまたいでいます。

bannerAds