SQLite Forum

Index Btree
The byte-length of each index entry is (probably) different.  You can't easily
know what that byte-length is.

CS textbook treatment of b-trees typically assumes each entry within a single
b-tree is the same size in bytes.  The b-tree is much easier to explain and
analyze that way.  But in the real world, data sizes vary.  So the entry sizes
vary.  Any particular page of a b-tree might have just a single entry or it
might have thousands of entries, depending on how many will fit.  And the
number of entries per page can vary widely among pages in the same b-tree.

So, for SQLite, if you want to know:

  1.  The number entries in a b-tree
  2.  The sizes of all entries in the b-tree
  3.  The depth of the b-tree
  4.  The number of pages in the b-tree

Then you have to walk the b-tree.  There are no shortcuts.