• 
      

    Eliminate JOINs when counting starred objects using LocalSite.ALL.

    Review Request #12349 — Created June 9, 2022 and submitted

    Information

    Review Board
    release-5.0.x

    Reviewers

    This improves performance of starred review group and review request
    counting when using LocalSite.ALL. Since we don't need to filter by
    any Profile state in this case, we can simplify things by querying the
    through table the starred items, filtering by the Profile's ID.

    This is much faster, as we don't need to JOIN any tables and the
    database can more easily leverage the existing indexes.

    Upcoming changes to use LocalSite.objects.has_local_sites() will allow
    us to short-cut the queries further in the common case of no Local
    Sites, avoiding the JOINs on the majority of servers.

    Unit tests pass.

    Summary ID
    Eliminate JOINs when counting review requests using LocalSite.ALL.
    This improves performance of starred review group and review request counting when using `LocalSite.ALL`. Since we don't need to filter by any `Profile` state in this case, we can simplify things by querying the `through` table the starred items, filtering by the `Profile`'s ID. This is much faster, as we don't need to JOIN any tables and the database can more easily leverage the existing indexes. Upcoming changes to use `LocalSite.objects.has_local_sites()` will allow us to short-cut the queries further in the common case of no Local Sites, avoiding the JOINs on the majority of servers.
    990eea65964e9664b869dfad06d1b5281f0195a1
    chipx86
    david
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-5.0.x (b9ea864)