Mvc 4 кеш базы данных для проекта электронной коммерции

У меня есть проект MVC4 для электронной коммерции, который вот-вот закончится. Я использую sqldependecy с outputcache. Но как лучше всего это сделать? Страница сведений о продукте? страница категории, в которой есть список продуктов? страница фильтра? бла бла

Не могли бы вы помочь мне с кэшированием? (я использую сервер sql с linq to sql в моем проекте) Пример;

[OutputCache (Duration = Int32.MaxValue, SqlDependency = "Демо: продукт")]

public ActionResult getproducts (int id, int lastid, строковый фильтр) {

я получаю данные из sql с параметрами.

}

это правильно? или должен кешировать данные запроса, бла-бла? Ластид используется для подкачки. параметры фильтра для данных фильтра. id означает categoryid

1 ответ

Давайте начнем с самого начала: я предполагаю, что вы хотите оптимизировать свой интернет-магазин, и поэтому вам нужны некоторые механизмы кэширования. Вы решили использовать OutputCache, вероятно, потому что он прост в использовании и доступен из коробки. Как вы, вероятно, знаете, OutputCache кэширует ответы с сервера, поэтому он не связан напрямую с кэшированием SQL-запросов или вообще с данными. Поэтому я в первую очередь рекомендую подумать, какой тип кеша вам действительно нужен - кеш вывода (расположен в System.Web.Configuration.OutputCacheSection), кеш данных (находится в System.Web.Caching.Cache) или оба?

Давайте предположим, что вы выбрали OutputCache. Вы должны убедиться, что все, что может изменить ответ от сервера, должно быть отправлено как параметр кэша. Таким образом, в случае страницы продукта это, вероятно, будет как минимум ProductId, в случае CategoryPage (ProductListPage) это, вероятно, будет CategoryId, PageId, PageSize, некоторые параметры сортировки, параметры фильтра (если вы используете фильтрацию) и т. Д.

Чем больше параметров вы должны принять во внимание, тем больше времени займет кэширование всех возможных комбинаций параметров. В качестве примера я бы использовал OutputCaching для Product Page, но я бы рассмотрел возможность использования его для CategoryPage (ProductListPage), особенно в случае использования фильтров, подкачки страниц, сортировки и т. Д.

Другие вопросы по тегам