170 похожих чатов

Какой код лучше? 1) try: instance = Model.objects.get(foo='bar') except: instance = None 2) instance =

Model.objects.filter(foo='bar').first()

Код делает одно и тоже провёл некоторые замеры и 1-ая функция отрабатывает быстрее. Возможно это из-за того что у меня маленькая бд или я хз. В общем, мне интересно ваше мнение по этому вопросу: какой код лучше? И почему вторая функция работает дольше?

25 ответов

26 просмотров

P.S.: обе функции отрабатывают в равных условиях, когда такого элемента нету и нужно пройтись по всей бд

Может get более медленный чем filter

Yaro
Может get более медленный чем filter

нет, такое объяснение не катит. Что именно под капотом происходит?

Жертва бюрократических проволочек
P.S.: обе функции отрабатывают в равных условиях, ...

чем? Если поле, по которому ты фильтруешь проиндексировано в бд, то перформанс будет один и тот же. тоже самое и с get

Жертва бюрократических проволочек
Что значит "чем?"?

я тебе написал чем, это риторический вопрос

Жертва бюрократических проволочек
Как?

get более медлнееый так как в нем вызывается filter, но только в этом ли причина

Ты специально выбиваешь ошибку?

Не, параметр существующий, просто нету в бд такого элемента

Yaro
Ты специально выбиваешь ошибку?

Ну, я рассчитываю на худший случай, когда придётся по всей бд пройтись, в поискам элементам

Yaro
first так делает?

first скорее всего лимит к запросу забавляет

Alexander
first скорее всего лимит к запросу забавляет

def first(self): """Return the first object of a query or None if no match is found.""" for obj in (self if self.ordered else self.order_by('pk'))[:1]: eturn obj

Alexander
first скорее всего лимит к запросу забавляет

А, ещё, вероятно, он сортирует, чтобы взять именно first

Yaro
first так делает?

тут не в first дело, а в filter и get

dnacd 🦜
тут не в first дело, а в filter и get

instance = Model.objects.filter(foo='bar').get()

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

Обсуждают сегодня

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта