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




posted @ 2020-03-28 19:44  巴德大舅子  阅读(522)  评论(0)    收藏  举报