title: Django - Optimize queries with select_related()
body: <p>I have the following model.</p>
  
  <pre><code>class Car(models.Model):
      owner = models.ForeignKey('Driver')
  
  class Country(models.Model)
      name = models.CharField(max_length=255)
  
  class Driver(models.Model):
      name = models.CharField(max_length=255)
      age = models.IntegerField()
      country = models.ForeignKey('Country')
  </code></pre>
  
  <p>I want to select the name of drivers owning a car.</p>
  
  <pre><code>Car.objects.all().values('owner__name')
  </code></pre>
  
  <p>Do I need to use select_related() method, to avoid a join for each object, or it is redundant because implicit with values() method?</p>
  
  <pre><code>Car.objects.all().select_related('owner').values('owner__name')
  </code></pre>
  
  <p>In the same way, I want, this time, the name of countries with drivers owning a car. Which one is the best?</p>
  
  <pre><code>Car.objects.all().values('owner__country__name')
  Car.objects.all().select_related('owner', 'country').values('owner__country__name')
  Car.objects.all().select_related('owner__country').values('owner__country__name')
  </code></pre>