• mysql的索引(基础)


    含义:

    是帮助sql加快查找数据的数据结构。类似于新华字典的目录,方便和加快我们找到想要的数据。

    使用索引:

    一般用可视化操作

    1. -- 创建索引
    2. create [ UNIQUE | FULLTEXT ] index 索引名 on 表名字 ( 列1,...列n ) ;
    3. -- 查看索引
    4. show index from 表名;
    5. -- 删除索引
    6. drop index 索引名 on 表名;

    底层数据结构

    所用数据结构       如何选择
    B+Tree最常用的索引类型
    Hash底层数据结构是哈希表,用于等值查询,效率比B+Tree要高

    hash

    BTree

    B+Tree

    • 非叶子节点仅仅是起到一个索引作用【查找】
    • 所有的数据都会出现在叶子节点
    • 叶子节点构成单向链表

    索引的优缺点

    优点:

    1.   任意字段都可以添加索引。
    2. 可以加快数据查找速度。

    缺点:

    1. 创建和维护索引需要时间
    2. 对表中数据删除、修改、增加的同时也需要对索引进行维护
    3. 索引也需要空间存储

    什么时候使用索引?

    什么时候使用:

    1. 作为主键的列可以使用索引(自动创建,聚集索引)
    2. 经常进行连接的列可以使用索引,主要是外键。(自动创建,普通索引)可以加快连接速度。
    3. 在经常需要查找的列使用索引,加快查找速度
    4. 在经常需要排序的列(order by)使用索引,加快排序速度

    什么时候不需要使用索引:

    1. 对非常数据少的表一般不建立索引
    2. 对于很少查询的列不建立
    3. 对于数据量很少或者数据量很多重复不需要建立索引

     索引的分类

    功能划分

    物理分类

    聚集索引和二级索引

    1. 聚集索引将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据
    2. mysql中每个表都有一个聚集索引(clustered index ),除此之外的表上的每个非聚集索引都是二级索引,又叫辅助索引(secondary indexes)。
    3. 以InnoDB来说,每个InnoDB表具有一个特殊的索引称为聚集索引。如果您的表上定义有主键,该主键索引是聚集索引。如果你不定义为您的表的主键时,MySQL取第一个唯一索引(unique)而且只含非空列(NOT NULL)作为聚集索引,InnoDB使用它作为聚集索引。如果没有这样的列,InnoDB就自己产生一个这样的ID值,它有六个字节,而且是隐藏的,使其作为聚簇索引。

    4. 案例

    索引失效参考这篇文章(115条消息) mysql索引失效的常见9种原因详解_book多得的博客-CSDN博客_mysql索引失效的几种情况

  • 相关阅读:
    使用trigger VPD 限制Toad 等的访问权限
    2022年宜昌市高新技术企业申报奖励政策以及认定条件要求汇总!
    用node-webkit把web应用打包成桌面应用
    Synchronized关键字
    SAP Scripting Tracker基本使用技巧
    开发自己的包----(将不同功能的包进行模块化拆分+说明文档+发布---2)
    VisionPro工具图表
    Codeforces-Round-895-Div-3
    Go :测试函数签名(附完整源码)
    中级经济师考试题型有哪些?具体分值是多少?
  • 原文地址:https://blog.csdn.net/m0_52261367/article/details/125882358