Ich möchte die ersten 500 Ergebnisse aus einer großen Datenbank abrufen, die einer bestimmten Filterabfrage entsprechen.
Im Moment verwende ich die folgende (furchtbar ineffiziente) Methode ..
%Vor%Aber ich denke, diese Abfrage lädt die gesamte Datenbank im Speicher und schneidet dann die Ergebnisse ab. Es ist furchtbar langsam.
Gibt es einen eleganteren Weg, dies zu tun? Danke!
So geht es.
Das generierte SQL verwendet LIMIT
, so dass es nicht die gesamte Datenbank in den Speicher lädt und Python-Slice ist.
Beachten Sie, dass Sie sehen können, was SQL django schreibt, indem Sie django.db.connection.queries
verwenden.
Ссылка
Aber ein weniger bekannter Trick besteht darin, eine queryset.query
oder sql = queryset.query.__str__()
Tags und Links django django-queryset