Django / SQL: что наиболее эффективно, больше столбцов или больше таблиц? - PullRequest
0 голосов
/ 29 сентября 2010

У меня есть база данных MySQL, которую я использую с Django.В одной из моих таблиц около 60 столбцов.Мне интересно, можно ли разделить его на 5-6 небольших столов.Это имело бы логический смысл, так как столбцы хорошо разделены на 5-6 логических групп.

Недостатком было бы то, что для некоторых страниц Django требовалось бы 5-6 запросов строк вместо 1.

Более эффективно иметь одну таблицу с несколькими столбцами или несколько таблиц с меньшим количеством столбцов?Если первое, то какой недостаток в том, чтобы иметь много таблиц?(насколько можно количественно оценить такие вещи ...)

Спасибо за ваш совет:)

Ответы [ 3 ]

3 голосов
/ 29 сентября 2010
0 голосов
/ 29 сентября 2010

Если логично разделить их на несколько моделей, то разделите их. Только из соображений эффективности, не храните их в одной модели.

Производительность / эффективность получения данных действительно зависит от того, как вы структурируете свой запрос. Нет смысла загружать все 70 столбцов в память, когда вы будете использовать только 5 - 10 полей. Вы можете просто выбрать то, что вы хотите, используя .values ​​().

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

Если мы сможем увидеть модель, возможно, мы сможем высказать свое лучшее мнение.

0 голосов
/ 29 сентября 2010
  1. Используйте старую бритву Opccams. Не делайте ненужных ходов. Ты в порядке с одним столом? Если так - оставь как есть. Не создавай себе проблемы из ниоткуда.

  2. Вы ошибаетесь в 6 запросах. Это будет еще один запрос. Но смотри пункт 1.

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