Work out index size estimate instantly with clear inputs, formula shown and shareable results.
A B-tree index stores the key plus a row pointer at every leaf, divided by the fill factor because pages are deliberately left partly empty to absorb inserts. Internal levels add barely one percent. Depth is the logarithm of row count in the base of entries per page, which is why even billion-row tables need only four or five levels — and why index lookups stay fast.
Index size
entry = key bytes + pointer bytes; leaf size = rows x entry / fill factor; depth = ceil(log(rows) / log(entries per page))
Every insert, update of an indexed column, and delete must maintain each index. Five indexes mean roughly five times the write amplification of the table alone.
Around 90 percent for append-only tables and 70 percent where inserts land in the middle of the key range, which reduces page splits at the cost of size.