The use of fixed pages reduces database efficiency because the RDMS must scan all punishments up to and including those on the specified page, before discarding the previous pages. For example, /banlist 10 requires the database to internally retrieve pages 1-9 only to discard them after the SQL LIMIT clause is applied.
Keyset pagination was one of the original motives behind offering seekAfter in the API. For compatibility reasons, the list commands continue to use OFFSET / LIMIT instead of keyset pagination. We should offer an option to toggle keyset pagination, which would change the applicable variables. This feature would be best paired with clickable messages. It's worth considering what to do if a user nevertheless enters a fixed page number. Perhaps keyset pagination and traditional fixed-page specification could work alongside each other for maximum utility, combining convenience and efficiency.
I have confirmed that ...
Description
The use of fixed pages reduces database efficiency because the RDMS must scan all punishments up to and including those on the specified page, before discarding the previous pages. For example,
/banlist 10
requires the database to internally retrieve pages 1-9 only to discard them after the SQLLIMIT
clause is applied.Keyset pagination was one of the original motives behind offering
seekAfter
in the API. For compatibility reasons, the list commands continue to use OFFSET / LIMIT instead of keyset pagination. We should offer an option to toggle keyset pagination, which would change the applicable variables. This feature would be best paired with clickable messages. It's worth considering what to do if a user nevertheless enters a fixed page number. Perhaps keyset pagination and traditional fixed-page specification could work alongside each other for maximum utility, combining convenience and efficiency.