как быстро получить три максимальных значения из базы данных Джанго?

попробовал Base.objects.order_by('value')[0:3] но это работало пока было мало записей. сейчас каждое упорядочивание занимает три секунды гдето а количество записей растет. Есть более быстрый способ?


Ответы (2 шт):

Автор решения: bolt_py

В модели попробуйте объявите сортировку по полю:

class Base(models.Model)
...
# Здесь объявлены ваши поля 
...

class Meta:
    ordering = ['value']
→ Ссылка
Автор решения: Sergey Tatarincev

не очень красиво, но можно сырым запросом, но для разных СУБД запрос немного будет отличаться. Для sqlite и mysql будет как-то так

Base.objects.raw('SELECT * FROM myapp_Base order by value limit 3')
→ Ссылка