the queryset filter will call all() first ?

when I reading the doc:
https://docs.djangoproject.com/en/3.0/topics/db/queries/#retrieving-objects
i see :
Entry.objects.filter(pub_date__year=2006)
With the default manager class, it is the same as:
Entry.objects.all().filter(pub_date__year=2006)

does that mean django will first fetch all data from db to queryset (cache or memory) then filter the queryset locally ?
so if I have 10 million data in a db and I only need 10 of them, I also have to fetch the 10 million data from db to django then filter out 10 rows locally ?

No - you’re on the right page, but just haven’t quite read far enough. See https://docs.djangoproject.com/en/3.0/topics/db/queries/#querysets-are-lazy

The whole linked page When QuerySets are evaluated is worth reading.