MyBatisのキャッシュ機構とは何か

MyBatis のキャッシュメカニズムには、主に 2 種類があります。

  1. 1次キャッシュ: ローカルキャッシュとも呼ばれ、MyBatisがデフォルトで有効にしているキャッシュ機構です。1次キャッシュは同じSqlSession内でのみ有効で、同じSQL文を実行した際に、パラメータが同じかつ検索条件が同じであれば、キャッシュから結果を取得し、再度SQL文をデータベースに送信しません。1次キャッシュはオブジェクト参照に基づくキャッシュであり、SqlSessionが閉じられるとキャッシュもクリアされます。
  2. 2次キャッシュ:全体キャッシュとも呼ばれて、複数のSqlSession間で共有されるキャッシュ仕組みです。2次キャッシュはSqlSessionを超えてデータを共有する事ができ、効果的にデータベースアクセス回数を削減できます。デフォルトでは2次キャッシュはオフになっており、手動でオンにする必要があります。2次キャッシュをオンにした後、MyBatisは問い合わせ結果をキャッシュに入れ、同じSQL文を次に実行する際には、まずキャッシュから結果を取得します。キャッシュに存在する場合には直接結果を返し、それ以外の場合はSQL文をデータベースに送信してキャッシュに結果を入れます。

MyBatisのキャッシュ機能は更新操作に影響されることに注意してください。挿入、更新、削除などの更新操作を実行すると、対応するキャッシュデータがクリアされ、キャッシュの一貫性が保たれます。さらに、MyBatisのキャッシュ機能は名前空間レベルに基づいており、つまり同じ名前空間にあるSQL文は同じキャッシュを共有します。2次キャッシュを使用する必要がある場合は、Mapper XMLファイルでタグを設定する必要があります。

bannerAds