一个数据库表有id和name两个字段,id为bigint,name为varchar且假设每次都用满最大容量。请问一行数据大概占多少空间?1千万条数据大概占用多大存储空间?若以id为主键索引,B+树高大概是多少?
考察说明
考察MySQL行存储结构、varchar长度与空间估算、B+树高度计算
回答思路
- 能说明bigint占8字节、varchar按实际字符长度计算但最大容量需考虑字符集和变长开销
- 能估算单行空间并计算1kw行的数据量
- 能根据InnoDB页大小和索引键大小估算B+树高度
- 考虑行头、变长字段长度列表、溢出页等辅助开销