索引

作者: ES_KYW | 来源:发表于2020-08-17 11:23 被阅读0次

    MySQL索引结构为B+树结构,与B树(又叫二叉树)结构的区别是B+树的节点中保存了多个值域和指针域,B树一个节点只能存储一个值域和指针域,导致创建的树高度会非常高,导致查询速度慢

    B+树 (根节点+页目录节点+页子节点(分页存储索引))

    最左原则,联合索引的最左原则 创建联合索引(a,b,c),a在最左边时三个索引都有效,a,b或者a,c都有效,b,c无效,不会使用索引

    查询索引树

    聚集索引一个表中只有一个,主键默认就是一个聚集索引

    聚集索引:会把表中的每行数据存储到索引的叶子节点中 (索引+数据+指针);
    普通索引:只会存储索引列+行号,不会存储整行数据 (索引+行号+指针);

    覆盖索引:查询列和索引列是一致的, 索引优化器在优化的时候会去查找索引表而不是全表查找;
    假设索引列是b
    select b from tb_index;
    这个语句会执行覆盖索引,通过b列的索引树查找
    select b,c from tb_index; 有可能走索引,有可能不走索引,根据索引优化器去判断

    索引默认对索引键进行排序,索引键+数据记录+指针(指向后一条记录),分页存储,每页16KB。页的上方节点是页目录,页目录存储的是每一页第一个索引,页目录里面也有两个节点值域+指针域,其中值存储索引页的第一个索引值,指针域标记这个存储的索引在哪一页中

    相关文章

      网友评论

          本文标题:索引

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