• 索引介绍及索引的分类


    目录

    一、索引介绍

    二、索引的分类

    三、常见索引介绍

    四、索引的使用

    五、索引原则

    一、索引介绍

    MySQL官方对索引的定义为:索引(index)是帮助MySQL高校获取数据的数据结构

    提取句子主干,就可以得到索引的本质:索引是数据结构

    二、索引的分类

    • 从索引存储结构划分:B Tree索引、Hash索引、FULLTEXT全文索引、R Tree索引

    • 从应用层次划分:普通索引、唯一索引、主键索引、复合索引

    • 从索引键值类型划分:主键索引、辅助索引(二级索引)

    • 从数据存储和索引键值逻辑关系划分:聚集索引(聚簇索引)、非聚集索引(非聚簇索引)

    三、常见索引介绍

    主键索引(primary key)

    • 唯一标识,主键不可重复,只有一个列作为主键
    • 不允许有空值

    唯一索引(unique key)

    • 避免重复的列出现,多个列都可以标识为唯一索引(唯一索引可以有多个但不可重复)
    • 允许有空值

    常规索引(key / index)

    • 默认的,可以用index或key关键字来设置
    • 这是最基本的索引类型,没有任何限制

    全文索引(FullText)

    • 查询操作在数据量比较少时,可以使用like模糊查询,但是对于大量的文本数据检索,效率很低。如果使用全文索引,查询速度会比like快很多倍。在MySQL 5.6 以前的版本,只有MyISAM存储引擎支持全文索引,从MySQL 5.6开始MyISAM和InnoDB存储引擎均支持。
    • 作用:快速定位数据
    • 和常用的like模糊查询不同,全文索引有自己的语法格式,使用 match 和 against 关键字,比如:
    select * from user where match(name) against('aaa');
    • 全文索引使用注意事项:

           1)全文索引必须在字符串、文本字段上建立。

            2)全文索引字段值必须在最小字符和最大字符之间的才会有效。(innodb:3-84;

                  myisam:4-84)

            3)全文索引字段值要进行切词处理,按syntax字符进行切割,例如b+aaa,切分成b和aaa

            全文索引匹配查询,默认使用的是等值匹配,例如a匹配a,不会匹配ab,ac。如果想匹配可以

            在布尔模式下搜索a*

    select * from user where match(name) against('a*' in boolean mode);

    四、索引的使用

    1)在创建表的时候给字段增加索引

    2)创建完毕后,增加索引

    显示所有的索引信息

    SHOW INDEX FROM 表名

    增加一个索引

    1. -- ALTER TABLE `表名` ADD FULLTEXT INDEX `索引名`(`指定列名`)
    2. ALTER TABLE `student` ADD FULLTEXT INDEX `studentname`(`studentname`)

    查看新增索引(选中表名右击设计表 -> 索引)

    五、索引原则

    1)索引不是越多越好

    2)不要对经常变动的数据加索引

    3)小数据量的表不需要加索引

    4)索引一般加在常用来查询的字段上

  • 相关阅读:
    Spark集群的搭建
    Linux环境下安装docker环境(亲测无坑)
    什么是OTP认证?OTP认证服务器有哪些应用场景?
    ubunu 18.04 LTS安装Qt-5.14-2并一起安装Qt Creator
    FFmpeg 系列
    深度强化学习DRL现存问题和训练指南(D3QN(Dueling Double DQN))
    C# - Opencv应用(1) 之VS下环境配置详解
    软件开发项目 质量管理的6大关键事项
    双指针算法
    Mysql生成数据字典
  • 原文地址:https://blog.csdn.net/qq_61727355/article/details/126318791