Делает ли больше таблиц в базе данных MSSQL медленнее? - PullRequest
0 голосов
/ 16 августа 2011

Производительность базы данных MSSQL падает с увеличением количества таблиц внутри нее?Даже если эти таблицы содержат мало данных или вообще не содержат данных (то есть, может быть, только 100 строк), однако существуют сотни таблиц, возможно, тысячи добавляемых в день?

Конкретная версия MSSQL, о которой идет речь, - это стандартная редакция 2008 года.

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

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

Данные доступны только через API, созданный для сайта, который извлекает данные, специфичные для пользователя ипроверяет доступ к данным также для каждого вызова.Любые типы данных могут быть созданы в будущем, поэтому у пользователей есть таблица контента вместе с несколькими другими для настроек и тому подобное.Каждый пользователь имеет около 15 таблиц для различных аспектов управления сайтом.Например, API позволяет запрашивать блок контента x у пользователя y как пользователя z.Он проверяет вашу безопасность и извлекает из таблицы все поля данных для блока x.

Так, в конечном счете, когда-либо увеличивающееся огромное количество таблиц существенно замедлит систему?Или при таком большом количестве данных в одной таблице замедление будет больше?

1 Ответ

5 голосов
/ 16 августа 2011

Нет, не с какой-либо релевантностью.

Ваш lgoic, тем не менее, все еще неисправен - вы теряете много функций sql или вынуждены создавать тонны объединений для запросов между пользователями.Я бы уволил любого, кто придумал бы такую ​​концепцию, если бы у него не было ОЧЕНЬ особого случая, который у вас не будет с 99,99% конфиденциальности.То же самое, что сказать, что вы разрабатываете 16-битное программное обеспечение для Windows сегодня.

Итак, вкратце:

  • Нет, значительного падения производительности нет.

  • Все еще плохое дизайнерское решение.

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