MyBatisのキャッシュは何をするのか?
MyBatisキャッシュの役割は、検索パフォーマンスを向上させ、データベースへのアクセス回数を減らすことです。クエリの結果をメモリに保存して、同じクエリが再度実行されると、データベースに再アクセスすることなく、キャッシュから結果を取得することができます。これにより、データベースへのアクセス回数が大幅に減少し、システムの応答速度が向上します。
マイバティスのキャッシュには、一次キャッシュと二次キャッシュの2つがあります。
- キャッシュレベル1:デフォルトで有効になっており、SqlSessionレベルのキャッシュであり、同じSqlSession内でのみ有効です。同じクエリを実行する際、MyBatisは最初にキャッシュレベル1から結果を検索し、見つかった場合は直接返します。見つからない場合はクエリを実行し、結果をキャッシュに格納します。キャッシュレベル1はデフォルトで有効であり、無効にすることはできません。
- マッパーレベルのキャッシュであり、SqlSessionを越えてキャッシュ結果を共有することができます。クエリを実行する際、MyBatisはまず二次キャッシュから結果を検索し、見つかれば直接返します。見つからない場合はクエリを実行して結果をキャッシュに格納します。二次キャッシュは手動で有効にする必要があり、データの整合性に注意する必要があります。
MyBatisのキャッシュは、システムの性能を大幅に向上させ、データベースへのアクセスプレッシャーを軽減することができますが、キャッシュのデータ整合性にも注意する必要があります。