zoukankan      html  css  js  c++  java
  • Spring Cloud微服务实战 打造企业级优惠券系统 2-8 Mysql索引

    0    课程地址

    https://coding.imooc.com/lesson/380.html#mid=28224 

    1    浓缩精华
    1.1  本章简介:

    mysql存储和查找使用聚簇索引和其他索引,聚簇索引应用b+tree原理(其他索引用b 树)。

    1.2  B+tree 的特点:

    a.非叶子节点只存储索引

    b.叶子节点存储数据,且叶子结点按照关键字顺序相互连接

    1.3  聚簇索引规则:

    显示的定义了主键                InnoDB会利用主键来生成其聚簇索引

    没有定义主键                  InnoDB会选择一个非空的唯一索引来创建聚簇索引

    没有定义主键且所有列都不满足主键的条件     InnoDB会隐式的创建一个自增的列来作为聚簇索引

    2    个人关注
    2.1  关注索引

     3.3

    3    课程内容
    3.1  B树和B+树

    3.1.1  B树是一种多路平衡查找树,B是平衡的意思,即Balance,m阶(m>=2)的B树有以下特性:
    ①树中的每个节点最多有m个子节点
    ②除了根节点和叶子节点之外,其他每个节点至少有m/2个子节点
    ③所有的叶子节点都在同一层
    ④节点中关键字的顺序按照升序排列

    3.1.2  B+树是B树的一种变体,同样是多路平衡查找树,它与B树主要的不同是:
    ①非叶子节点不存储数据,只存储索引
    ②叶子节点包含了全部的关键字信息,且叶子节点按照关键字顺序相互连接

    3.2  Mysql索引之聚簇索引(应用B+树原理)

    ◆聚簇索引的含义
    每个InnoDB的表都拥有一个索引,称之为聚簇索引,此索引中存储着行记录,一般来说,聚簇索引是根据主键生成的。


    ◆聚簇索引的创建规则
    显示的定义了主键                InnoDB会利用主键来生成其聚簇索引

    没有定义主键                  InnoDB会选择一个非空的唯一索引来创建聚簇索引

    没有定义主键且所有列都不满足主键的条件     InnoDB会隐式的创建一个自增的列来作为聚簇索引


    *对于选择唯一索引的顺序是按照定义唯一索引的顺序,而非表中列的顺序;

    类选中的唯一索引字段会充当为主键,或者InnoDB隐式创建的自增列也可以看做主键

    3.3  主键查值过程

    左侧为辅助索引(btree),左侧底部为索引,,右侧为聚簇索引(b+树)

    自己理解:左侧为a/b表联查,最终根据a表的聚簇索引和b表的聚簇索引拿到a/b表的行记录

     

    3.4  常见索引类型


    主键索引(聚簇索引)    PRIMARYKEY,要求关键字不能重复,也不能是NULL,同时会增加主健约束
    唯一索引          UNIQUE INDEX,要求关键字不能重复,同时增加唯一性约束

    单列索引          INDEX,对关键字没有要求,在单列上设计索引

    多列素引          INDEX,对关键字没有要求,在多列上设计索引,需要考虑索引顺序

    诸葛
  • 相关阅读:
    文件路径总结
    git本地仓库关联远程仓库
    webpack-dev-server版本
    box-sizing重置
    事件委托优缺点和实现
    移动端经验总结(持续更新)
    点击其他区域关闭dialog
    css3图片变灰
    安装 ubuntu 后,使用 sed 更换国内源
    在virtualBox中打开vdi(转载)
  • 原文地址:https://www.cnblogs.com/1446358788-qq/p/14296089.html
Copyright © 2011-2022 走看看