Mysql单表性能边界2千万的估算方法
每个索引节点一般都是操作系统页的整数倍。默认16KB。以B+树高度为3计算(高度为4时性能会降低不少)
主键id,我们采用bigint,8字节
一条数据大小1KB
- 第一层
一个页16K,每一个索引键的大小8字节(bigint)+6字节(指针大小),因此第一层可存储 16 * 1024/(8+6) =1170个索引键。 - 第二层
第二层只存储索引键,1170 * 1170 =1368900
如果第二层存储数据呢?1170(这么多个页,有第一层延伸的指针)* 16(16KB的页大小/1KB的数据大小)=18720,也就是能存储一万多条数。 - 第三层
直接看三层能存储多少数据?1170*1170*16=21902400, 2千多万左右的数据。 - 这里如果涉及回表,还会有第4次IO

浙公网安备 33010602011771号