Я делаю основанное на членах веб-приложение в ASP MVC3 и пытаюсь планировать заранее, поначалу наша база пользователей не будет огромной, но, как и в случае с любым программным обеспечением, вероятность внезапного скачка громкости всегда возможна.
Забегая вперед в этом сценарии, я знаю, что база данных является узким местом в большинстве веб-приложений.Мы используем MSSQL 2008RS, у нас будут выделенные серверы с несколькими клиентскими базами данных, у каждого клиента есть собственная база данных, поэтому, если один сервер начинает становиться узким местом, мы можем масштабировать по вертикали или перенести некоторые базы данных на новый сервер и начать его заполнять.
Для доступа к базам данных мы используем в основном LINQ 2 SQL и в настоящее время перефакторируем часть нашего кода, чтобы использовать механизмы IQueryable для ленивой загрузки содержимого.но каждая страница содержит довольно много контента из разных частей базы данных.
У нас также есть несколько больших баз данных, которые используются для виджетов в программе, которые редко изменяются, но имеют миллионы строк.Цель этого - каким-то образом синхронизировать их с первичным источником и распределить их по нескольким машинам, а затем распределить нагрузку на эти серверы.
При таком макете я должен даже беспокоиться о кэшировании, или будет достаточно встроенных механизмов кэширования в MSSQL?
Если так, то с чего мне начать?Я кратко рассмотрел структуру приложения, но она выглядит так, как будто она предназначена только для Azure?
Ресурсы:
Как кэшировать данные в приложении MVC
http://stephenwalther.com/blog/archive/2008/08/28/asp-net-mvc-tip-39-use-the-velocity-distributed-cache.aspx
http://stephenwalther.com/blog/archive/2008/08/29/asp-net-mvc-tip-40-don-t-cache-pages-that-require-authentication.aspx