Skip to content
ENExplore Calculators

Table Size Estimate Calculator

Work out table size estimate instantly with clear inputs, formula shown and shareable results.

About Table Size Estimate Calculator

Table storage is rows times row size plus per-row header overhead, inflated by page free space. What surprises people is the index share: four secondary indexes at roughly 32 bytes per entry can approach or exceed the size of the row data itself, and they must all be kept in memory for lookups to stay fast.

Formula

Table footprint

heap = rows x (row bytes + header) / page fill; index bytes = indexes x rows x entry size / index fill; total = heap + indexes

Worked example

With the default values below, Table Size Estimate Calculator returns Total table footprint of 58.19 GiB. Change any input above and every figure here is recalculated in your browser.

Inputs used

Row countminimum 1
120,000,000
Average row sizeminimum 1 bytes
280 bytes
Per-row header overheadminimum 0 bytes
24 bytes
Secondary indexesminimum 0
4

Results

Total table footprint
58.19 GiB
Row data
37.75 GiB
Secondary indexes
20.44 GiB
Share of storage used by indexes
35.1%

Step by step

  1. 1Values used
  2. 2Table footprint
  3. 3Total table footprint= 62,476,190,476
  4. 4Row data= 40,533,333,333
  5. 5Secondary indexes= 21,942,857,143
  6. 6Share of storage used by indexes= 35.1

Assumptions and limits

  • The result is derived only from the 4 inputs listed above. Anything not among them is not part of the calculation.
  • In particular, this calculator does not take inflation, tax, fees or charges or compounding frequency into account.
  • Figures are rounded for display to 1 decimal place, so totals built from several rounded parts can differ slightly from the unrounded arithmetic.

How these calculators are built and tested is described on the Methodology page. If a figure looks wrong, please report it.

Frequently Asked Questions

Why is per-row overhead significant?

PostgreSQL adds a 23-byte tuple header plus alignment padding, and MySQL InnoDB adds transaction and roll-pointer fields. On narrow rows that overhead can exceed the data.

How can table size be reduced?

Drop unused indexes, choose narrower types, order columns to reduce alignment padding, and move rarely read large columns to a separate table or object storage.

Table Size Estimate Calculator | Calcrivo