tr
TryGhost
GitHub
Ghost
Workspace
GitHub
CI Pipeline Executions
Filtered
Runs
Demo
Insights
Compare tasks
Analytics
Sign in
Toggle sidebar
Overview
⌘K
Ghost
Loading workspace stats
Loading workspace insights...
Statistics interval
7 days
30 days
Latest CI Pipeline Executions
Status
Fix filter
Filter
Fuzzy
Filter range
Sort by
Sort by
Start time
Sort ascending
Sort descending
GitHub
Ghost
Workspace
Succeeded
29445
547fb8e6 Moved deep-offset pagination tests out of the legacy suite ref INC-311 - test/legacy is the old regression suite that's slated for rewrite or deletion (see #23611), so new coverage shouldn't be added to it - the tests are standalone (direct knex seeding, no shared fixtures), so they now live in test/integration/models with a single beforeAll seed instead of reseeding 1300 rows before every test
by Ricardo Pinto
R
Succeeded
29445
3b7c8c69 Fixed members list in Admin loading very slowly on deep pages ref INC-311 - deep-offset browse queries (e.g. ?page=104&limit=100) did a clustered-index row lookup for every discarded OFFSET row, so cost grew linearly with page number — ~10s per page at 2M members - deep member fetches (offset > 1000) are now rewritten to a deferred join: LIMIT/OFFSET runs over a subquery selecting only the primary key (covered by the (created_at, id) index) which then joins back for the final page's rows; ~1.5s → ~50ms at offset 250k on MySQL 8.4, identical results - hooked via Member.onFetchingCollection since limit/offset are applied by @tryghost/bookshelf-pagination (external package); the rewrite inspects the compiled query via qb.toSQL() (public knex API) and bails unless it matches the plain single-table browse shape, and the count query runs before the event, so filters, search and pagination meta are unchanged
by Ricardo Pinto
R
Succeeded
29445
2ecf2960 Fixed members list in Admin loading very slowly on deep pages ref INC-311 - deep-offset browse queries (e.g. ?page=104&limit=100) did a clustered-index row lookup for every discarded OFFSET row, so cost grew linearly with page number — ~10s per page at 2M members - deep member fetches (offset > 1000) are now rewritten to a deferred join: LIMIT/OFFSET runs over a subquery selecting only the primary key (covered by the (created_at, id) index) which then joins back for the final page's rows; ~1.5s → ~50ms at offset 250k on MySQL 8.4, identical results - hooked via Member.onFetchingCollection since limit/offset are applied by @tryghost/bookshelf-pagination (external package); the rewrite inspects the compiled query via qb.toSQL() (public knex API) and bails unless it matches the plain single-table browse shape, and the count query runs before the event, so filters, search and pagination meta are unchanged
by Ricardo Pinto
R
Previous
Next