• 浅谈索引


    一.索引的定义
      通俗来说,索引就像一本书的目录,根据目录可以快速定位要找到的内容所在页码,MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的一种数据结构,而且是排好序的数据结构,索引存储在磁盘文件中。

    二.索引的分类

       MySQL索引主要是有两种结构:B+Tree索引和Hash索引,平时我们常说的,如果没有特别说明的话,一般都是指B+Tree结构的索引。索引都能极大的减少存储引擎需要扫描的数据量,从而提高数据的检索速度。

    1.Hash索引

      Hash索引的结构和HashMap相类似,键值 key 通过 Hash 映射找到桶 bucket。在这里桶(bucket)指的是一个能存储一条或多条记录的存储单位。一个桶的结构包含了一个内存指针数组,桶中的每行数据都会指向下一行,形成链表结构,当遇到 Hash 冲突时,会在桶中进行键值的查找。

    2.B+Tree索引

      B+树是B-树的变体,也是一种多路搜索树。

    • 所有关键字都出现在叶子结点的链表中(稠密索引),且链表中的关键字恰好是有序的;
    • 不可能在非叶子结点命中;
    • 非叶子结点相当于是叶子结点的索引(稀疏索引),叶子结点相当于是存储(关键字)数据的数据层;
    • 每一个叶子节点都包含指向下一个叶子节点的指针,从而方便叶子节点的范围遍历。
    • 更适合文件索引系统;

    三.索引类型
    1.Normal 普通索引
    表示普通索引,大多数情况下都可以使用
    2.Unique 唯一索引
    表示唯一的,不允许重复的索引,如果该字段信息不能重复,例如注册手机号用作索引时,可设置为unique;
    Primary Key是拥有自动定义的Unique约束;
    3.Full Text 全文索引
    表示全文索引,在索引长文本的时候效果较好,比如搜索一遍文章,在比较短的文本建议使用普通的Index即可;
    4.SPATIAL 空间索引
    空间索引是对地理空间位置数据类型的字段建立索引,MYSQL中的地理空间位置数据类型有4种,分别是GEOMETR、POINT、LINESTRING、POLYGON;
    四.Navicat添加索引

    1.找到需要添加索引的表,右键单击,选择设计表。

     2.进入索引选项页面

     3.根据需求添加索引,填写索引命名、选择相对应的字段、索引类型、索引方法以及添加注释

     

     

    五.索引命名规范

    非唯一索引名idx_xxx,唯一索引名 uniqx_xxx;

  • 相关阅读:
    找出优先要作的工作
    我要作技术研发了
    确定配色方案
    今天公司搬家
    要作界面原型了
    使用自已的命名空间
    进行审核了
    那里有皮肤软件工开发包的源码???
    发葡萄
    作业务规则挺难
  • 原文地址:https://www.cnblogs.com/xstcb/p/16050548.html
Copyright © 2020-2023  润新知