SQLite 3.45.1, Python 3.11.15, 25 rows a page, median of 41 runs per query (9 in part 2a)

Part 1: the real table, 2,953 bills = 119 pages, the grid's own query
  every row, to show 25 of them (what SqlDataSource paging does): 2,953 rows in 9.504 ms
   page  OFFSET  OFFSET ms  keyset ms  same rows?
      1       0      0.113      0.115  yes
      2      25      0.113      0.086  yes
     30     725      1.605      0.138  yes
     60    1475      3.124      0.085  yes
     90    2225      4.547      0.085  yes
    118    2925      6.240      0.088  yes
    119    2950      7.330      0.027  yes

Part 2a: 295,300 rows (100 copies) = 11,812 pages, no index on (arrived, id)
  plan, OFFSET:        SCAN BigBill; USE TEMP B-TREE FOR ORDER BY
  plan, keyset or:     SCAN BigBill; USE TEMP B-TREE FOR ORDER BY
  plan, keyset row:    SCAN BigBill; USE TEMP B-TREE FOR ORDER BY
  plan, keyset prefix: SCAN BigBill; USE TEMP B-TREE FOR ORDER BY
    page   OFFSET  OFFSET ms     key-or ms    key-row ms key-prefix ms  same rows?
       1        0     30.465        24.838        22.919        22.279  yes
      10      225     22.133        26.720        32.916        35.918  yes
     100     2475     29.224        32.251        32.777        36.013  yes
    1000    24975     39.446        27.388        43.415        30.847  yes
    4000    99975    102.723        25.061        26.044        29.936  yes
    8000   199975    220.747        35.987        31.610        21.369  yes
   11812   295275    399.212        18.723        27.645        12.421  yes

Part 2b: 295,300 rows (100 copies) = 11,812 pages, with an index on (arrived, id)
  plan, OFFSET:        SCAN BigBill USING INDEX BigBill_arrived_id
  plan, keyset or:     SCAN BigBill USING INDEX BigBill_arrived_id
  plan, keyset row:    SEARCH BigBill USING INDEX BigBill_arrived_id ((arrived,id)<(?,?))
  plan, keyset prefix: SEARCH BigBill USING INDEX BigBill_arrived_id (arrived<?)
    page   OFFSET  OFFSET ms     key-or ms    key-row ms key-prefix ms  same rows?
       1        0      0.026         0.024         0.024         0.024  yes
      10      225      0.027         0.037         0.023         0.023  yes
     100     2475      0.079         0.207         0.026         0.026  yes
    1000    24975      0.660         1.879         0.025         0.025  yes
    4000    99975      3.404         7.629         0.024         0.023  yes
    8000   199975      6.327        24.636         0.023         0.023  yes
   11812   295275     14.773        34.795         0.023         0.023  yes

results.json written
