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