Я настраиваю систему SaaS, где мы планируем предоставить каждому клиенту свою собственную базу данных. Система уже настроена так, что мы можем легко масштабировать до дополнительных серверов, если нагрузка становится слишком большой; мы надеемся иметь тысячи или даже десятки тысяч клиентов.
Вопросов
- Существуют ли какие-либо практические ограничения на количество микроданных, которые вы можете / должны иметь на одном SQL Server?
- Может ли это повлиять на производительность сервера?
- Лучше иметь 10000 баз данных по 100 МБ каждая или одну базу данных по 1 ТБ?
Дополнительная информация
Когда я говорю «микро-базы данных», я не имею в виду «микро»; Я просто имею в виду, что мы нацелены на тысячи клиентов, поэтому каждая отдельная база данных будет составлять лишь одну тысячную или менее от общего объема хранилища данных. На самом деле, каждая база данных будет стоить около 100 МБ, в зависимости от того, сколько она использует.
Основная причина использования 10 000 баз данных - это масштабируемость. Дело в том, что V1 системы имеет одну базу данных, и у нас были некоторые неудобные моменты, когда БД напрягалась под нагрузкой.
Это напрягало процессор, память, ввод / вывод - все вышеперечисленное. Несмотря на то, что мы исправили эти проблемы, они заставили нас осознать, что в какой-то момент, даже с самой лучшей в мире индексацией, если мы настолько успешны, насколько надеемся, мы просто не сможем поместить все наши данные в один большой хонкин. ' база данных. Таким образом, для V2 мы разделяем нагрузку на несколько серверов БД.
Я потратил последний год на разработку этого решения. Это одна лицензия на сервер, но в любом случае об этом позаботились, поскольку мы используем виртуальные машины в Azure. Причина, по которой вопрос возникает сейчас, заключается в том, что раньше мы предлагали только крупным учреждениям и сами создавали их. Наш следующий бизнес-заказ - это модель самообслуживания, при которой любой, у кого есть браузер, может зарегистрироваться и создать собственную базу данных. Их базы данных будут намного меньше и гораздо более многочисленными, чем крупные учреждения.
Мы пробовали Azure SQL Database Elastic Pools . Производительность была очень разочаровывающей, поэтому мы переключились на обычные виртуальные машины.