Я создаю таблицу, в которой может быть до 70 столбцов. Теперь я подумываю разделить его, так как некоторые данные в столбцах не будут нужны каждый раз при доступе к таблице. Опять же, если я сделаю это, мне придется использовать объединения.
В какой момент считается слишком много столбцов?
Ответы:
Считается, что их слишком много, если он превышает максимальный лимит, поддерживаемый базой данных .
Тот факт, что вам не нужно, чтобы каждый столбец возвращался каждым запросом, совершенно нормально; вот почему оператор SELECT позволяет вам явно назвать нужные столбцы.
Как правило, структура вашей таблицы должна отражать модель предметной области; если у вас действительно есть 70 (100, какие у вас) атрибуты, принадлежащие одному объекту, нет причин разделять их на несколько таблиц.
источник
select count(*) from votes
каждый раз, или вы думаете, что, возможно, оно денормализовано? Делает ли это база данных SO плохой, а Джеффа Этвуда - сумасшедшим?Разделение таблицы на несколько с меньшим количеством столбцов дает некоторые преимущества, что также называется вертикальным разбиением . Вот несколько:
Если у вас есть таблицы с большим количеством строк, изменение индексов может занять очень много времени, так как MySQL необходимо перестроить все индексы в таблице. Разделение индексов на несколько таблиц может сделать это быстрее.
В зависимости от ваших запросов и типов столбцов MySQL может записывать временные таблицы (используемые в более сложных запросах выбора) на диск. Это плохо, поскольку дисковый ввод-вывод может быть большим узким местом. Это происходит, если в запросе есть двоичные данные (текст или большой двоичный объект).
Более широкая таблица может привести к снижению производительности запроса.
Не оптимизируйте преждевременно, но в некоторых случаях вы можете получить улучшения за счет более узких таблиц.
источник
Слишком много, когда нарушаются правила нормализации. Довольно сложно получить такое количество столбцов, если вы нормализуете свою базу данных. Создавайте свою базу данных для моделирования проблемы, а не вокруг каких-либо искусственных правил или идей по оптимизации для конкретной платформы БД.
Примените следующие правила к широкой таблице, и у вас, вероятно, будет гораздо меньше столбцов в одной таблице.
Вот ссылка, которая поможет вам.
источник
It is pretty hard to get that many columns if you are normalizing your database.
Не так сложно, как кажется.Это не проблема, если все атрибуты не принадлежат одному объекту и не зависят друг от друга. Чтобы упростить жизнь, вы можете иметь один текстовый столбец с сохраненным в нем массивом JSON. Очевидно, если у вас нет проблем с получением всех атрибутов каждый раз. Хотя это полностью лишило бы смысла его хранение в СУБД и значительно усложнило бы каждую транзакцию базы данных. Поэтому не рекомендуется придерживаться этого подхода во всей базе данных.
источник
Наличие слишком большого количества столбцов в одной таблице также может вызвать огромные проблемы при репликации. Вы должны знать, что изменения, которые происходят в главном устройстве, будут реплицироваться на подчиненное устройство .. например, если вы обновите одно поле в таблице, вся строка будет w
источник