Да, кэширование БД является частью наилучшей практики и может привести к очень значительному повышению производительности. Если вы слишком сильно полагаетесь на него, вы можете получить очень удручающую производительность, скажем, после перезапуска работника IIS по сравнению с тем, как он работал час.
Не забудьте подумать об истечении срока действия кэша, что если этот популярный контент изменится? Как долго, прежде чем вы используете, увидеть новый контент? Вы получаете значительное повышение производительности для времени кеширования, намного меньшего, чем 24 часа, если у вас есть просмотр страницы в секунду, то время кеширования в 1 минуту сэкономит вам 59 поездок в БД и означает, что, если страница будет разбита, у вас есть (маленький) шанс на выживание.
Если вы используете MS-SQL, есть способы сделать недействительными кэши , если строка или таблица изменятся
Вы также можете захотеть изучить кэширование вывода , если вы используете ASP.NET, это позволяет вам кэшировать результат со страницы или элемента управления на основе параметров URL. Это позволяет вам сохранять нагрузку на ЦП веб-сервера, а также на загрузку БД с помощью кэширования.
попробуйте использовать System.Web.Cache
private MyContent GetContent(){
MyContent content = Cache[GetContentCacheKey()];
if(content == null) {
content = GetContentFromDb();
Cache.Add(GetContentCaceKey(), content, null, DateTime.Now.AddHours(1),
Cache.NoSlidingExpiration, CacheItemPriority.High, null);
}
return content;
}