美文网首页
mysql索引记录

mysql索引记录

作者: 黑铁大魔王 | 来源:发表于2020-12-10 21:46 被阅读0次

    innodb一个节点的大小,为何是4个操作系统页(16kb)?
    一个节点的大小是固定的16kb,如果节点里增加data,那么节点里存储的索引值就会减少,那么b+树的高度就会变高,磁盘io次数就会增加。

    innodb的主键索引:
    主键索引的叶子结点只保存了真实的记录数据;
    非叶子结点只保存(索引值 + 指针),假设主键是 bitInt:8b,指针:6b;

    暂定:1条数据=1kb
    一个叶子节点保存的数据条数:16kb / 1kb = 16条数据
    一个非叶子节点保存的索引指针对:(16 * 1024) / (8 + 6 ) = 1170对(索引+指针)
    高度为2的b+树 -> 根节点能有1170+1个子节点 -> 可以有1171个叶子节点
    叶子节点存储的数据条数:1171 * 16 = 18736条1kb的数据

    高度=3的b+树 -> 根节点能有1170+1个子节点 -> 可以有1171个子节点 -> 1171 * 1171个叶子节点
    叶子节点存储的数据条数:1171 * 1171 * 16 = 21939856条1kb的数据(2千多万条)
    可以,该分库分表了。

    相关文章

      网友评论

          本文标题:mysql索引记录

          本文链接:https://www.haomeiwen.com/subject/pcxdgktx.html