Я создаю программное обеспечение, которое будет иметь много пользователей (надеюсь). У меня будут пользователи, у которых мало записей или данные превышают обычные, а также у меня будут большие пользователи, у которых будут миллионы строк данных во многих таблицах. Что было бы лучше поместить каждого пользователя в отдельную базу данных или иметь основную базу данных для всех пользователей, даже если бы данные могли стать очень большими в записях. Меня беспокоит производительность, сможет ли SQL-сервер по-прежнему работать нормально даже после миллионов записей для каждого пользователя? Структура данных будет одинаковой, поскольку все они будут обращаться к одному и тому же программному обеспечению.
Любые идеи? Спасибо.
Вам действительно нужно найти хорошего администратора баз данных, который сможет более тщательно оценить ваши конкретные требования и дать обоснованные рекомендации. Тем не менее, я бы побеспокоился о том, чтобы это работало, прежде чем беспокоиться о чрезмерном масштабировании, и поместил бы все это в одну БД для начала.
Существуют передовые методы разделения данных таким образом, чтобы они не находились на одном сервере, без ущерба для единого представления структуры данных в базе данных. Опять же, получив рекомендации от хорошего администратора баз данных, они будут знать это.
Консультации с администратором баз данных кажутся необходимыми.
Если у вас сейчас мало пользователей, но вы надеетесь расширить до многих, вам не имеет большого смысла создавать отдельные базы данных для каждого пользователя; любая производительность, которую вы можете получить с отдельными базами данных, почти наверняка будет сведена на нет из-за накладных расходов на масштабирование. ПРИМЕЧАНИЕ: максимальное количество баз данных в экземпляре SQL-сервера составляет 32 767
Хороший администратор баз данных должен быть в состоянии помочь нормализовать ваши таблицы в одной базе данных таким образом, чтобы решить ваши проблемы с производительностью.
Если у вас много таблиц и данных для каждого пользователя, IMHO, отдельная база данных будет предпочтительным решением.
Вы также можете начать с одного экземпляра базы данных, и, когда данные конкретных пользователей вырастут за пределы среднего, выделить их из основной БД и заставить их работать в отдельном экземпляре.
Кроме того, если данные являются конфиденциальными и безопасность является серьезной проблемой, отдельные экземпляры будут ограничивать возможности утечки данных не тем пользователям.