次のサイズの 4 つの列を持つ MySQL の単純なテーブルを見ています。
unsigned bigint (8 bytes)
unsigned bigint (8 bytes)
unsigned smallint (2 bytes)
unsigned tinyint (1 byte)
したがって、1行あたり19バイトになると予想されます。
このテーブルには 1,654,150 行あるため、データのサイズは 31,428,850 バイト (または約 30 メガバイト) になります。
しかし、phpMyAdmin を介して、データが 136.3 MiB を占めていることがわかります ( bigint 1, smallint, tinyint
79 MiB のインデックスのサイズは含まれません)。
ストレージ エンジンは InnoDB で、主キーはbigint 1, bigint 2
(ユーザー ID と一意のアイテム ID) です。
編集:コメントで要求されたように、これがaの結果ですSHOW 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