Skip to content
Browse the docs

Big tables: 100,000 rows and how long they take

Updated

On this page

A table holds as many rows as your database does: there is no row cap on any plan, the free one included. One tool reads less: in the AI edition, code the assistant runs over a table reads the table's first 5,000 rows. This page says how long the server takes to answer on a table of 100,000 rows, the largest we measure, how we measure it, and what is still slow.

How a big table is read

The grid never loads a whole table. It asks the server for the 100 rows on screen, and the server answers sorts, filters and totals over every row, in Postgres, after checking the viewer may open the table. Scroll, jump or sort, and only the next window is read. The same happens on a phone.

After an import, the server updates Postgres's statistics for the new rows straight away, so the first sorted window is quick from the start.

How long the server takes

One table of 100,000 rows, a window of 100 rows, 30 windows at each place, asked over HTTP as the app asks. The machine: an Intel Xeon Gold 5120 (2.2 GHz) with 12 cores (24 threads) given to the test, and PostgreSQL 12. The reads came from the same machine, so no network is in these numbers: your connection adds its own round trip, and the browser then draws the window.

p50 is the typical wait; p95 is the wait 19 reads in 20 stay under. At the top is the first window of the sorted, filtered or searched list; in the middle starts halfway down it; at the end is its last window.

Read At the top In the middle At the end
Sort by a number 11 ms (p95 17 ms) 162 ms (p95 180 ms) 177 ms (p95 190 ms)
Filter keeping 1% of rows 16 ms (p95 26 ms) 16 ms (p95 25 ms) 17 ms (p95 27 ms)
Filter keeping a third of rows 14 ms (p95 21 ms) 149 ms (p95 167 ms) 158 ms (p95 165 ms)
Search for a word 802 ms (p95 863 ms) 644 ms (p95 699 ms) 678 ms (p95 708 ms)

These timings were measured on that machine on 5 November 2026. They depend on the machine, so no release is held to them.

On the demo

On the public demo, a shared server, a 100,000-row sheet imports in about a minute. A formula over every row is worked out in about 12 seconds, and while it is, the table says so rather than showing a half-done sort. Totals over all 100,000 rows come from the server in about a third of a second, and sorting by the formula keeps working while people edit the table.

What is still slow

  • Search reads every row, so it takes most of a second on 100,000 rows.
  • Deep in a long list (the middle or the end of a sort over 100,000 rows, or of a filter that keeps a third of them), a window takes 150 to 190 ms, because the server counts its way to the place. A filter that keeps few rows stays quick at any depth.
  • A new formula is worked out over every row before you can sort by it: about 12 seconds for 100,000 rows on the demo. The table says so while it works, and the rest of the table keeps answering.

Something missing or wrong in this guide? Write to support@onemana.dev.