参数
在InnoDB中,数据页的默认大小为16KB,可以通过修改innodb_page_size参数调整,真实数据存贮在聚簇索引中,而聚簇索引有以下的结构:
叶子节点页
叶子节点上存放的是完整的数据行,假设数据行的大小为1KB(实际根据数据行大小波动),那么一个叶子节点可以存放:16KB ÷ 1KB = 16 条数据
非叶子节点
非叶子节点存放索引键和指向子节点的指针,假设子节点指针的大小为6字节,索引键(一般为bigint)为8字节,那么一个非叶子节点可以指向:16KB * 1024 ÷ (6+8)≈ 1170 个叶子节点
计算
根叶子节点可以指向 1170 个子节点。
第二层每个非叶子节点可以指向1170个叶子节点。
每个叶子节点可以存放16条数据。
三层B+树能存储:1170 * 1170 * 16 = 21,902,400 ≈ 2000万条数据。
注意:具体存放数量会根据实际的数据大小、页大小等因素略有不同。