美文网首页
索引简介

索引简介

作者: DOB_8199 | 来源:发表于2021-03-25 17:55 被阅读0次

    索引作用:

    相当于一本字典目录,提高程序的检索查询效率;表中每一个字段都可添加索引

    主键自动添加索引:

    能够通过主键查询的尽量通过主键查询,效率较高

    索引和表相同,存储在硬盘文件中

    索引和表相同,都是一个对象,表是存储在硬盘文件中的,那举索引也是表的一部分,索引也

    存储在硬盘文件中;

    MySQL数据库中表的检索方式有2种:

    第一种:全表扫描(效率较低)

    第二种:通过索引检索(提高查询效率)

    什么情况下适合给表中字段添加索引

    1) 该字段数据量庞大

    2) 该字段很少的DML操作(由亍索引也需要维护,DML操作多的话,也影响检索效率)3) 该字段经常出现在where条件中

    注:实际开发中会根据项目需求戒客户需求等综合因素来做调整

    主键和具有unique约束的字段自动会添加索引,根据主键查询效率较高,尽量根据主键检索。

    查看sql的执行计划:explain



    索引的应用

    创建索引

    1)语法结构:

            a) create index 索引名 on 表名(列名)

            b) create unique index 索引名 on 表名(列名)

            注:添加unique表示在该表中的该列添加一个唯一性约束

            示例:create index dept_dname_index on dept(dname);

    查看索引

    1) 语法结构:

            a) show index from 表名

            示例:show index from dept;

    删除索引

    1) 语法结构:

        a) drop index 索引名 on 表名;

        示例:drop index dept_dname_index on dept;


    底层原理

    索引底层采用的数据结构

    B+ Tree

    索引的实现原理:

    通过 B Tree缩小扫描范围,底层索引进行了排序,分区,索引会携带数据在表中的“物理地址”

    最终通过索引检测到数据之后,获取到关联的物理地址,通过物理地址定位表中的数据,效率是最高的


    索引的分类

    单一索引:给单个字段添加索引

    复合索引:给多个字段联合起来添加一个索引

    主键索引:主键上会自动添加索引

    唯一索引:有unique约束的字段上会自动添加索引


    索引什么时候失效?

    1. 模糊查询的时候,第一个通配符使用的是%,这个时候索引是失效的

    select enme from emp where ename like '%A%';

    相关文章

      网友评论

          本文标题:索引简介

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