NHibernate の機能を十分に活用していないと感じる状況があり、パフォーマンスが低下します。実際の状況は、この質問の「投稿のあるブログ」の例に縮小されます。
各ユーザーが任意の数の投稿を含む独自のブログを持つことができるブログ サイト。したがって、次の列で定義された投稿のテーブルがあります。
id, blog_id, post_title, post_contents
ほとんどのブログはめったに更新されませんが、頻繁に更新される「Twitter のような」ブログもいくつかあります。書き込みより読み取りの方が多い。
各ブログのフロント ページには、最新の 5 つのエントリが表示されます。
SELECT TOP 5 * FROM blog_posts WHERE blog_id = ?
これにより、多くの要素が第 2 レベルのキャッシュとクエリ キャッシュの両方に配置されます。
私たちの問題は、頻繁に更新される少数のブログが原因で、99% 以上の読み取りがあるブログのキャッシュされたクエリ結果が破棄されることです。
他の人は通常、この問題をどのように解決しますか? ベストプラクティスは何ですか?