Split the author call in the library stats page to 2 lighter functions #2896
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently on the library stats page, the function getAuthorsWithCount() is called to get both the top 10 authors by number of books, and also the total number of authors in that library. It does this by querying for all authors and every related book. In a library of 30k authors, this query takes
567038ms
or around 10 minutes.This has been split into 2 calls - getAuthorsTotalCount() gets the total number of authors in the library in
1ms
and getAuthorsWithCount() only grabs the top 10 authors by number of books written in35ms
. These values will vary based n the number of books in the library, but it represents a significant speed increase.The results displayed on the stats page should be identical after the change.