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

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

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

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

25 ответов

30 просмотров

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()

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта