Когда разделять таблицы на несколько баз данных? - PullRequest
3 голосов
/ 31 декабря 2011

Я строю хранилище данных. Мне нужно получить данные из разных источников и собрать их вместе, чтобы я мог создавать отчеты. Я буду делать много объединений таблиц. Я имею в виду, может быть, всего 20 таблиц, и каждая таблица будет где-то от 100 МБ до 5 гигов.

Я хотел бы знать, следует ли мне создавать разные базы данных для каждой таблицы, поскольку каждая таблица может иметь совершенно другой ТИП набора данных.

Например, у меня может быть одна таблица с 1 ГБ данных о дизайне автомобилей. И у меня будет еще одна таблица с 3 ГБ данных о продажах этих автомобилей.

Было бы целесообразно разделить их на разные базы данных?

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

Ответы [ 3 ]

6 голосов
/ 31 декабря 2011

Если есть логическое или деловое разделение, обязательно поместите их в разные базы данных.Это просто чистая разработка данных приложений.Однако, если вы собираетесь объединять или объединять различные наборы данных, вы можете сэкономить некоторые накладные расходы и затраты на администрирование, имея единую базу данных.Всего 20 таблиц - это немного (я работаю в системе, в которой около 3700 таблиц, хотя около 1600 проверок).Помните, что SQL Server предназначен для масштабирования до терабайт данных, если у вас есть подходящая модель, индексы и т. Д.

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

5 голосов
/ 31 декабря 2011

Распределение по разным базам данных обычно выполняется для распределения нагрузки ввода-вывода.В SQL Server вы можете иметь разные файловые группы в самой базе данных, если вы хотите распределить ввод-вывод по нескольким дисковым группам / дискам.В сценариях Warehousing вы часто имеете дело с решениями SAN для хранения базы данных, и в зависимости от вашего сценария они не будут особенно заботиться о производительности в той или иной степени, в то время как другие могут дать вам дополнительную производительность при правильном планировании.

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

Мы запускаем 100-гигабайтные базы данных в одном файле базы данных, и производительность просто великолепна.Хотя большая часть часто используемых данных хранится в памяти, но с приличной структурой таблиц и логическими индексами у вас быстро откроется хранилище.

3 голосов
/ 31 декабря 2011

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

Если вы их разделите, то столкнетесь с некоторыми интересными проблемами, когда попытаетесь выполнить запрос одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...