Задать вопрос
@Matveika

Сколько полей оптимально в таблице бд MySQL?

Всегда учили (в универе), что делать две таблицы со связью 1 к 1 - плохая практика. Но таблица ведь не может расширяться до бесконечности (по крайней мере не желательно :)). И если в основной таблице, к которой обращение происходит очень часто, будут столбцы, к которым мы обращаемся всего раз в день например, это тоже не есть хорошо?
Когда стоит выделять отдельную табличку? (вроде это называется вертикальное разделение)
Пример - на данный момент у меня в таблице есть 25 полей. Нужно добавить десять, которые будут использоваться реже и относятся к вторичным свойствам, к отдельное теме так сказать. Может лучше выделить отдельную таблицу с этими полями со связью 1 к 1?
  • Вопрос задан
  • 5216 просмотров
Подписаться 3 Средний Комментировать
Решения вопроса 1
deadbyelpy
@deadbyelpy
веб-шмеб
То что вы переживаете за это, это уже хорошо.
25 полей - это не так и много и увеличение количества не сыграет на производительности, но только если вы не начнете включать новые поля в фильтр при выборке.
Т.е. если не будет "WHERE col1 LIKE 'asd' col2 LIKE 'asd2'"...
И пусть там будет хоть 100 колонок, админить неудобно будет разве что.
Но! Т.к. с вашей предметной областью незнаком, даю такие советы, т.к. в 99% случаев от большого количества колонок можно избавится.
Вариант 1 - создаем общее поле, пишем туда в JSON формате кучу ваших полей. Минусы - искать по такому полю нельзя, после выборки приходится распаковывать JSON.
Вариант 2 - используем NoSQL бд, и забываем про количество колонок, но это тоже не совсем хорошо.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@art_karetnikov
Лучший мой проект: Мобильный банк Сбербанка РФ.
Доброго. Да что-то враки хромой собаки, что это не хорошо. Используйте спокойно. Но если у вас эти поля использоваться будут реже, а то и могут выбираться вообще отдельным запросом, не обращаясь к главной таблице - я бы их вынес.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы