InnoDB row metadata size (minimum row size)
Each row in InnoDB (let assume COMPACT format) has these headers:


Offsets - one or two byte per variable length type field.
NULL flags - one bit per NULL-able field, aligned to a whole number of bytes.
So called "Extra bytes" - a bunch of flags like is_deleted, pointer to next record ect. Five bytes in COMPACT format, fixed.


Then comes primary key field(s).
Then 6 bytes transaction id and 7 bytes rollback pointer.
Then remaining field values.

For the given row (BIGINT, TINYINT, TINYINT) it's size will be:


0 bytes offsets
0 bytes NULL flags
5 bytes "Extra bytes"
8 bytes BIGINT
6 bytes trx_id
7 bytes roll_ptr
1 byte TINYINT
1 byte TINYINT


So, 28 bytes per record.

But to calculate how much space the table will take you need to take into account:


PAGE header (38+56 bytes)
page trailer
page fill factor
infinum, supremum records
space used by non-leaf pages


Check these slides for more details
http://www.slideshare.net/akuzminsky/data-recovery-talk-on-pluk