Por que o tamanho da minha tabela é maior que 4 vezes maior que o esperado? (linhas * bytes / linha)

Eu estou olhando para uma tabela simples no MySQL que tem 4 colunas com os seguintes tamanhos,

unsigned bigint (8 bytes)
unsigned bigint (8 bytes)
unsigned smallint (2 bytes)
unsigned tinyint (1 byte)

Então, eu esperaria 19 bytes / linha.

Há 1.654.150 linhas nesta tabela, portanto, o tamanho dos dados deve ser de 31.428.850 bytes (ou cerca de 30 megabytes).

Mas eu posso ver através do phpMyAdmin que os dados estão ocupando 136.3 MiB (não incluindo o tamanho do Index embigint 1, smallint, tinyint que é 79 MiB).

O mecanismo de armazenamento é o InnoDB e a chave primária ébigint 1, bigint 2 (um ID do usuário e um ID de item exclusivo).

Editar: Conforme solicitado nos comentários, aqui está o resultado de umSHOW CREATE TABLE storage

CREATE TABLE `storage` (
 `fbid` bigint(20) unsigned NOT NULL,
 `unique_id` bigint(20) unsigned NOT NULL,
 `collection_id` smallint(5) unsigned NOT NULL,
 `egg_id` tinyint(3) unsigned NOT NULL,
 PRIMARY KEY (`fbid`,`unique_id`),
 KEY `fbid` (`fbid`,`collection_id`,`egg_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

questionAnswers(3)

yourAnswerToTheQuestion