До сих пор я - довольно удобная работа с приложением Windows C#. Я собираюсь сместиться на Asp.net для разработки веб-сайта. Требование сделало меня для помещения приблизительно 50 столбцов в единственную таблицу. Я знаю это понятие повреждения его в маленькие таблицы с помощью нормальных форм.
Я пытался гуглить, но вмятина добирается, много заканчивается. Я должен знать, уменьшила ли моя таблица с 50 атрибутами производительность моего веб-приложения? Может кто-то предлагать меня об этом.
Что ж, если вы принесете их по всему обратно, вы, безусловно, имеете затраты на сетевые (передача данных между БД и вашим кодом .NET) и затратами на материализацию (создание объекта / DataTable
представление в вашем DAL), так что тогда вы Обязательно имел бы некоторых затрат. И любой способ учитывать размер страницы базы данных.
Но, возможно, ключевая вещь: Вам нужны все данные? Если это так, есть только так много, что вы можете сделать. Использование нескольких таблиц и вводящих соединений также .
В большинстве случаев, хотя и , особенно ASP.NET, Наиболее важные фигурки - это такие вещи, как:
Поскольку пропускная способность и задержка между вашим приложением -Сервера и клиент имеет тенденцию , чтобы быть точкой сжима. Измерить вещи; Убедитесь, что вы нацеливаетесь на правильно .
Также ASP.NET имеет репутацию, чтобы не стесняться о хранении большего количества, чем вы ожидаете, что в таких вещах зрения; Следите за этим или перейдите на более легкую модель, такую как ASP.NET MVC.
Одной из таблиц, 50 столбцов?
Одной из точек нормализ является избегать вставки, удаления, обновления аномалий
сейчас, он будет работать как собака с более чем горсткой рядов , но целостность данных превосходит выступление здесь ...
Если вы говорите о таблице БД с множеством полей (или столбцов), 50 не совсем необычно.
Однако вы должны поддерживать нормированную конструкцию DB, и если дизайн нормализуется 50 полей, иди с этим.
, а не думать о том, сколько столбцов, я предлагаю вам подумать о типах данных колонн.
D-нормализация также популярна. Выберите свою нормализацию, опираясь на логику приложения. (Подумайте о присоединениях тщательно)
Все сводится к тому, что вы будете использовать вас. В конце дня это количество данных, которые вы получите от / писать в таблицу. Если большинство ваших запросов извлеките из / пишут большинству столбцов, да нет столбцов не повлияет.
Время поворота вашего запроса будет напрямую пропорционально количеству данных, которые он читает / пишет. Чем больше данных, тем дольше это взять. Большое количество столбцов может означать большое количество данных (но не всегда).
Сказав, что 50 столбцов не является большим числом. Я столкнулся со столами с более чем 300 столбцами. Но тогда это также зависит от использования СУБД.
«Делайте самую простую вещь, которая может работать». (Уорд Каннингем).
Если столбцы все представляют отдельные элементы данных, вы следуете за хорошими правилами нормализации, и у вас нет групп повторяющихся элементов, то количество столбцов в таблице действительно не имеет большого значения. Если вы хотите, чтобы вы могли начать потеть по размеру строк против размера блока данных, сколько места вы можете или не будете тратить, и т. Д., AD Naauseum, но в моем опыте лучше сохранить ваши данные вместе в одной таблице, если нет некоторой подавляющей функциональной причины, по которой она должна быть разбита на несколько таблиц. Я непременно пришлось работать с базами данных, где кто-то предварительно предположил, что слишком много полей в одной таблице было плохой вещью, поэтому они сломали, что было логически одной таблицей в несколько таблиц с меньшим количеством полей. Это сделано для кошмара при попытке сделать обновления.
Удачи.
В зависимости от того, что вы действительно имеете в виду, это может или не может быть проблемой.
Если 50 столбцов относительно небольшие по размеру, и каждый содержит разный тип данных (телефон, CIT, состояние, имя и т. Д.), Вы, вероятно, в порядке.
Если они такие вещи, как телефон1, телефон2 и т. Д., Вам нужен связанный стол, поскольку это сложно поддерживать и правильно запросить. Например, предположим, что у вас есть пятьдесят полей номера телефона, и день наступает, когда вам нужно 51, то вам нужно изменить структуру таблицы и все связанные запросы (вы не используете выбору * в производстве?) Предположим, вы хотите Чтобы узнать, у кого есть телефон 111-1111-11111, вы должны присоединиться к (или союз) в таблицу 50 раз, чтобы получить ответ. Это где это может повредить производительность.
Третий случай - это то, где 50 столбцов являются каждаями разными вещами, но все вместе будут большой записью из-за размера полей. Поймите, что базы данных позволят вам создать StrucuTre, которая больше, чем максимальное количество байтов, которую может содержать запись, он просто не позволит вам поставить больше, чем количество байтов в записи. Плюс более длинные записи, как правило, создают проблемы в том, как данные хранятся на диске и могут привести к более медленному поискому. В этом случае лучше всего создавать одну или несколько связанных таблиц, которые будут иметь отношение к одному на один к основной таблице.
Это зависит от того, что и как получены данные. Конечно, выбор * скажет на производительности. Вам нужно будет выбрать необходимые столбцы по мере необходимости и попробуйте использовать предложение, где. Это один из способов сделать из стола с большим количеством столбцов и данных.