View Issue Details

IDProjectCategoryView StatusLast Update
0001854Composrcore_abstract_interfacespublic2019-11-24 21:19
ReporterChris GrahamAssigned To 
Severityfeature 
Status non-assignedResolutionopen 
Product Version 
Fixed in Version 
Summary0001854: Support keyset pagination
DescriptionOffset pagination is slow when going into deep datasets.
Additional InformationFuller explanation:
http://use-the-index-luke.com/no-offset
TagsType: Cross-cutting feature, Type: Performance
Attach Tags
Time estimation (hours)50
Sponsorship open

Relationships

related to 0003185 non-assigned Pagination indexing table specifically for forum topics 

Activities

Chris Graham

2015-07-18 10:07

administrator   ~0002960

See also 'search keys' In Tapatalk implementation.

Chris Graham

2016-06-22 23:38

administrator   ~0004064

This is now implemented for forum topics (not in Tapatalk though).

It's only worth doing for result sets with large numbers of records which are actively gone deep into. That could be 'news' or 'activities', but forum topics is by far the most common thing to have the issue.

Chris Graham

2019-11-18 21:20

administrator   ~0006160

Last edited: 2019-11-24 21:19

View 3 revisions

One problem with this is pagination becomes less user-friendly. IIRC we have to disable the 'last' button when using keyset pagination.

0003185 would be a better approach - and maybe we could even drop what we already have of this feature if we implement that.

EDIT: No, for 2 reasons...
1) actually I was able to implement a hybrid mode, where it does a pre-query to find the keyset ID even if one wasn't provided by URL, which is massively faster than using regular MySQL LIMIT clauses. This is best of both worlds and works great.
2) a background-generated pagination is not going to work for forumview, as each new post would invalidate it (posting in a topic changes the topic order on forumview)

Issue History

Date Modified Username Field Change
2016-06-20 03:14 Chris Graham Tag Attached: Type: Performance
2016-06-22 23:38 Chris Graham Note Added: 0004064
2016-12-08 16:19 Chris Graham Tag Attached: Type: Cross-cutting feature
2017-04-05 12:04 Chris Graham Relationship added related to 0003185
2017-05-01 16:48 Chris Graham Category core => core_abstract_interfaces
2019-11-18 21:20 Chris Graham Note Added: 0006160
2019-11-24 21:15 Chris Graham Note Edited: 0006160 View Revisions
2019-11-24 21:19 Chris Graham Note Edited: 0006160 View Revisions