• mysql数据库(12)--进阶二之索引


    一、什么是索引?

    索引是帮助mysql高效获取数据的数据结构,其本质就是排好序的快速查找数据结构

    二、索引的优缺点

    优点:

    1、提高数据的检索效率;

    2、降低数据排序的成本

    缺点:

    1、索引也是一张表,该表保存了主键和索引字段,并执行实体表的记录,所以索引列也需要占用空间;

    2、增删改表中的数据需要维护索引,会降低操作效率

    三、索引的分类

    1、单值索引:一个索引只包含单个列,一张表可以有多个单列索引

    2、唯一索引:索引列的值必须唯一,但允许有空值

    3、复合索引:一个索引包含多个列

    4、主键索引

    四、索引的操作

    1、创建

    • create  [unique]index 索引名称 on 表名(列名)

    2、删除

    • drop index 索引名 on 表名

    3、使用alter

    • alter table 表名 add index 索引名(列名)
    • alter table 表名 add unique 索引名(列名)
    • alter table 表名 add primary key(列名)

    4、查看

    • show index from 表名

    五、索引的结构

     【查找过程】

    如果要查找数据项29,首先会把磁盘块1由磁盘加载到内存,此时发生一次IO,在内存中用二分查找确定29在17和35之间,锁定磁盘款1的P2指针(内存时间很短,可以忽略不计);通过磁盘块1的P2指针的磁盘地址把磁盘块3由磁盘加载到内存,发生第二次IO;29在26和30之间,锁定磁盘块3的P2指针,通过指针加载磁盘块8到内存,发生第三次IO,同时内存中做二分查找找到29,结束查询,总计3次IO.

    六、不适合创建索引的情况

    • 表记录太少
    • 频繁增删改的表
    • where条件子句中使用不到的字段
    • 数据重复且分布平均的表字段  -- 如果某个数据列包含许多重复项,建立索引不会有太大的实际效果
  • 相关阅读:
    aspnetcore identity result.Succeeded SignInManager.IsSignedIn(User) false?
    RFID
    window 关机
    有赞零售小票打印图片二值化方案
    条码打印
    音频基本概念
    2008R2 部署 aspnetcore repair failed 函数不正确
    IIS 字符串过长
    解决MVC Json序列化的循环引用问题/EF Json序列化循引用问题---Newtonsoft.Json
    book
  • 原文地址:https://www.cnblogs.com/yif930916/p/15041608.html
Copyright © 2020-2023  润新知