Utk*_*glu 5 mysql database database-design innodb
我有一个表,其中包含两个32位整数。这两个整数用于创建聚簇索引。用于创建表的SQL如下,
CREATE TABLE `a` (
`var1` int(10) unsigned NOT NULL,
`var2` int(10) unsigned NOT NULL,
PRIMARY KEY (`var2`,`var1`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Run Code Online (Sandbox Code Playgroud)
SELECT COUNT(*) FROM a
)SHOW TABLE STATUS
)根据我的计算,每一行使用51.8个字节。我知道InnoDB在存储行时会产生开销。但是,使用MySQL网站,我计算出行大小应为26个字节(5个字节的标头,8个字节的整数,6个字节的事务ID和7个字节的滚动指针字段)。
我试图减小行的大小,因为该表可能会填充多达1600亿条记录。
我的计算中缺少什么?如何优化表以使用更少的空间?还是应该切换到其他数据库引擎?
更新资料
我对此表的查询;
INSERT INTO a(var1,var2) VALUES(INTEGER,INTEGER),(INTEGER,INTEGER),...,(INTEGER,INTEGER);
SELECT var1 FROM a WHERE var2=INTEGER;
DELETE FROM a WHERE var2=INTEGER;
Run Code Online (Sandbox Code Playgroud)