Реализация .first() в Django, кажется, помещает все элементы в список, а затем возвращает первый.
.first()
Является ли .get() более производительным? Конечно, база данных может просто вернуть один элемент, реализация .first() кажется неоптимальной,
.get()
Не вижу смысла так думать, хотя на самом деле я не профилировал.
Нарезка на наборы запросов Django реализована путем изменения запроса, чтобы использовать LIMIT и OFFSET термины для получения только необходимого числа. элементов. Это означает, что реализация first() выбирает только один элемент из базы данных.
LIMIT
OFFSET
first()