Django таблица или Dict: производительность?
У меня есть несколько небольших таблиц ключ/значение в Django, и их значения никогда не меняются
ie: 1->"Active", 2->"Down", 3->"Running"....
и несколько раз, я делаю некоторые get по id, а другие по имени. Поэтому я спрашиваю, не будет ли более оптимальным переместить их все как Dict (глобально или в модели)? спасибо
Обычно django querysets медленнее, чем dicts, поэтому если вы хотите написать модель с одним полем, которое имеет эти статусы (активен, не работает, запущен), лучше использовать dict, пока нет необходимости в редактируемости.
В любом случае я не понимаю такого вопроса, выигрыш в производительности не очень велик, пока вы не получите ~10k+ записей в одном QS, и даже тогда вы можете привести всю модель к списку, используя синтаксис .values_list
. Выполнение займет примерно часть секунды.
Также, если я правильно понимаю, эти значения должны быть в любом случае в models.CharField
с установленным полем choices
, а не устанавливаться с помощью приспособления в models.ForeignKey
.