• 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条件子句中使用不到的字段
    • 数据重复且分布平均的表字段  -- 如果某个数据列包含许多重复项,建立索引不会有太大的实际效果
  • 相关阅读:
    OpenJudge 2753 菲波那契数列
    Jmeter的介绍、安装及汉化
    spring集成Java性能监控调优工具-Javamelody
    js-xlsx + handsontable + echarts实现excel上传编辑然后显示成图表
    spring mybatis设置SQL语句打印
    Ribbon负载均衡策略详解
    JVM内存结构、Java内存模型以及Java对象模型之间的区别
    Java的自动拆装箱
    elasticsearch集群管理指南
    ElasticSearch最全分词器比较及使用方法
  • 原文地址:https://www.cnblogs.com/yif930916/p/15041608.html
Copyright © 2020-2023  润新知