• 
      

    Optimize several queries for review requests.

    Review Request #1496 — Created April 1, 2010 and submitted — Latest diff uploaded

    Information

    Review Board

    Reviewers

    Optimize several queries for review requests.
    
    The Dashboard, despite recent improvements, is still slow for really huge
    deployments. Most of this turned out to be a bug where, instead of passing in
    a calculated list of IDs to another query, we were passing in the query to
    get the list of IDs. This is slow. We're now properly getting that list of
    IDs.
    
    We also do smaller, less complicated queries for many things. Previously,
    we were doing complex queries that caused the Profile and Group tables to be
    joined. Now we look up the values we need beforehand and pass in the IDs
    to the more complicated query. This reduces the overall time for these
    queries and helps use the database sql query cache.
    
    This also fixes the Number of Reviews column to not perform a query per-row.
    Tested with a large database of hundreds of thousands of reviews. A particular dashboard visit went down from 22 seconds to just under 6.