Правда ли, что количество столбцов не влияет на производительность базы данных, а количество строк влияет? - PullRequest
0 голосов
/ 08 июля 2010

Как в заголовке.

Я собираюсь использовать отдельные таблицы с JOIN или использовать одну таблицу, в основном я беспокоюсь о производительности.

Спасибо.

Ответы [ 6 ]

1 голос
/ 08 июля 2010

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

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

Количество строк не имеет значения, если ваши индексы настроены правильно.

0 голосов
/ 08 июля 2010

Номер столбца и номер строки влияют на производительность.

Если вы беспокоитесь о производительности, вы можете создать представления только с теми столбцами, которые вы используете для объединения. Другой вариант - создавать индексы, но использовать индексы, только если таблица не обновляется часто.

Также вам не нужно беспокоиться о производительности, если у вас нет более 1000 записей или более 15 столбцов.

0 голосов
/ 08 июля 2010

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

0 голосов
/ 08 июля 2010

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

0 голосов
/ 08 июля 2010

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

Все это во многом зависит от ваших данных, ваших запросов и того, как вы настроили базу данных и таблицы (например, правильные индексы в соответствии с вашими запросами.

Начните профилирование и тестирование с вашими фактическими данными и запросами, прежде чем беспокоиться о производительности, если вы просто догадаетесь, что догадаетесь неправильно.

0 голосов
/ 08 июля 2010

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

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

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

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