title: Query with multiple annotations slows down
body: <p>I've got a query which returns users with additional info
  Here are my simplified models:</p>
  
  <pre><code>class Event(..):
      creator = models.ForeignKey('users.User', on_delete=models.CASCADE, related_name='event_creator_set')
  
  
  class Participator(..):
      status = models.CharField(..)
      event = models.ForeignKey('events.Event', on_delete=models.CASCADE, related_name='participators_set')
      user = models.ForeignKey('users.User', on_delete=models.CASCADE, related_name='participations_set')
  </code></pre>
  
  <p>My method from User Manager:</p>
  
  <pre><code> def additional_info(self):
          from events.models import Participator
          participated_events_count = Count(
              'participations_set',
              distinct=True,
              filter=(~Q(participations_set__event__creator=F('id')) &amp; Q(
                  participations_set__status=Participator.PARTICIPATED))
          )
          return self.get_queryset()\
              .annotate(created_events_count=Count('events_set',
                                                   distinct=True))\
              .annotate(followers_count=Count(
                  'followers_set',
                  filter=(Q(followers_set__is_following=True)),
                  distinct=True)) \    
              .annotate(
                  participated_events_count=participated_events_count)
  </code></pre>
  
  <p>Everything works great without the last annotate, but when I'm trying to add <code>participated_events_count</code> value - query performed up to 30 seconds</p>
  
  <p><strong>UPDATED</strong>
  If I remove random annotate with Count - query performs very fast</p>