• MySQL索引


    查看索引

    SHOW index FROM 表名;

    构建索引

    ALTER TABLE 表名 ADD index 索引名(字段1);

    索引是什么?

    ​ 索引是数据库中一个或多个列的值进行排序的结构,是帮助MySQL高效获取数据的数据结构。可以理解为,索引是一本书的目录,如果想快速查找某个内容,可以根据索引(目录)快速的找到想要找到的内容。而不必要扫描整个数据库。

    MySQL索引类型

    • 普通索引
    • 主键索引
    • 唯一索引
    • 组合索引
    • 全文索引

    索引的优缺点:

    索引的使用方式:对数据进行频繁查询建立索引,如果需要频繁更改数据不建议使用索引

    优点:

    • 索引最大的好处就是提高查询速度

    缺点:

    • 缺点就是更新数据时效率低,更新数据的同时也要更新索引。
    • 索引需要占据物理空间和数据空间。

    B+索引和hash索引

    ​ 两者的区别:

    • B+索引数据有序,范围查询
    • Hash索引等值查询效率高,对于范围查询、排序及组合索引仍然效率不高。由于HASH的唯一及类似键值对的形式,很适合作为索引。HASH索引可以一次定位,不需要像树形索引那样逐层查找,因此具有极高的效率。但是,这种高效是有条件的,即只在“=”和“in”条件下高效

    聚簇索引和非聚集索引

    • 聚集索引:数据按索引顺序存储,中子节点存储真实的物理数据
    • 聚簇索引:将数据存储与索引放到了一块,找到索引也就找到了数据
    • 非聚集索引:存储指向真正数据行的指针
    • 非聚簇索引:将数据存储于索引分开结构,索引结构的叶子节点指向了数据的对应行。

    索引的底层实现

    三种树的区别:

    • 红黑树:红黑树进行增加或删除的时候,会进行频繁的调整,来保证红黑树的性质,会浪费时间
    • B-树:b-树查询性能不稳定,查询结构高度不致,每个结点保存指向真实数据的指针,相对比与B+数每一层每屋存储的元素更多,显得更高一些。
    • B+数:b+数相比较于另外两种数,显得更矮更宽,查询层次更浅。更方便查询。

    哪些情况下需要创建索引?

    • 1、主键自动创建唯一索引

    • 2、频繁作为查询条件的字段应该创建索引

    • 3、查询中与其他表关联的字段,外键关系建立索引

    • 4、where条件里用到的字段需要创建索引

    • 5、最好创建组合索引

    • 6、查询中排序的字段,排序字段若通过索引访问将大大提高排序速度

    • 7、查询中涉及到统计和分组的字段

    哪些情况不需要创建索引?

    • 1、表记录过少的时候
    • 2、经常增删改的表
    • 3、包含许多重复内容的列
    • 4、频繁更新的字段不适合创建索引
  • 相关阅读:
    第一次作业
    Zotero引用文献格式(软件学报)
    好文索引
    【思维导图】分享以前整理的两张思维导图吧
    Nokia N9开启开发者模式
    Windows10 Ubuntu子系统折腾
    [CSAPP]并发与并行
    [读书笔记]逻辑思维,只要五步
    linux配置备忘
    从现在就开始写博客
  • 原文地址:https://www.cnblogs.com/lance-lzj/p/14033420.html
Copyright © 2020-2023  润新知