Назад | Перейти на главную страницу

Что было бы лучше: одна база данных или несколько баз данных, по одной для каждого клиента

Я создаю программное обеспечение, которое будет иметь много пользователей (надеюсь). У меня будут пользователи, у которых мало записей или данные превышают обычные, а также у меня будут большие пользователи, у которых будут миллионы строк данных во многих таблицах. Что было бы лучше поместить каждого пользователя в отдельную базу данных или иметь основную базу данных для всех пользователей, даже если бы данные могли стать очень большими в записях. Меня беспокоит производительность, сможет ли SQL-сервер по-прежнему работать нормально даже после миллионов записей для каждого пользователя? Структура данных будет одинаковой, поскольку все они будут обращаться к одному и тому же программному обеспечению.

Любые идеи? Спасибо.

Вам действительно нужно найти хорошего администратора баз данных, который сможет более тщательно оценить ваши конкретные требования и дать обоснованные рекомендации. Тем не менее, я бы побеспокоился о том, чтобы это работало, прежде чем беспокоиться о чрезмерном масштабировании, и поместил бы все это в одну БД для начала.

Существуют передовые методы разделения данных таким образом, чтобы они не находились на одном сервере, без ущерба для единого представления структуры данных в базе данных. Опять же, получив рекомендации от хорошего администратора баз данных, они будут знать это.

Консультации с администратором баз данных кажутся необходимыми.

Если у вас сейчас мало пользователей, но вы надеетесь расширить до многих, вам не имеет большого смысла создавать отдельные базы данных для каждого пользователя; любая производительность, которую вы можете получить с отдельными базами данных, почти наверняка будет сведена на нет из-за накладных расходов на масштабирование. ПРИМЕЧАНИЕ: максимальное количество баз данных в экземпляре SQL-сервера составляет 32 767

Хороший администратор баз данных должен быть в состоянии помочь нормализовать ваши таблицы в одной базе данных таким образом, чтобы решить ваши проблемы с производительностью.

Если у вас много таблиц и данных для каждого пользователя, IMHO, отдельная база данных будет предпочтительным решением.

Вы также можете начать с одного экземпляра базы данных, и, когда данные конкретных пользователей вырастут за пределы среднего, выделить их из основной БД и заставить их работать в отдельном экземпляре.

Кроме того, если данные являются конфиденциальными и безопасность является серьезной проблемой, отдельные экземпляры будут ограничивать возможности утечки данных не тем пользователям.